Azure App Service’te uygulamalar için tanılama günlüğünü etkinleştirme

Bu videoda, uygulamalar için tanılama günlüğünü etkinleştirme işlemi gösterilmektedir.

Videodaki adımlar aşağıdaki bölümlerde de açıklanmıştır.

Genel bakış

Azure, App Service uygulamasında hata ayıklamaya yardımcı olmak için yerleşik tanılama sağlar. Bu makalede tanılama günlüğünü etkinleştirmeyi ve uygulamanıza izleme eklemeyi ve Azure tarafından günlüğe kaydedilen bilgilere erişmeyi öğreneceksiniz.

Bu makalede tanılama günlükleriyle çalışmak için Azure portalı ve Azure CLI kullanılmaktadır. Visual Studio kullanarak tanılama günlükleriyle çalışma hakkında bilgi için bkz . Visual Studio'da Azure sorunlarını giderme.

Not

Bu makaledeki günlüğe kaydetme yönergelerine ek olarak, Azure İzleme ile yeni, tümleşik günlüğe kaydetme özelliği de vardır. Bu özellik hakkında daha fazla bilgi için Bkz. Günlükleri Azure İzleyici'ye gönderme.

Tür Platform Konum Açıklama
Uygulama günlüğüne kaydetme Windows, Linux App Service dosya sistemi ve/veya Azure Depolama blobları Uygulama kodunuz tarafından oluşturulan iletileri günlüğe kaydeder. İletiler, seçtiğiniz web çerçevesi tarafından veya uygulamanızın kodundan doğrudan dilinizin standart günlük düzeni kullanılarak oluşturulabilir. Her iletiye şu kategorilerden biri atanır: Kritik, Hata, Uyarı, Bilgi, Hata Ayıklama ve İzleme. Uygulama günlüğünü etkinleştirdiğinizde önem düzeyini ayarlayarak günlüğün ne kadar ayrıntılı olmasını istediğinizi seçebilirsiniz.
Web sunucusu günlüğü tutma Windows App Service dosya sistemi veya Azure Depolama blobları W3C genişletilmiş günlük dosyası biçiminde ham HTTP isteği verileri. Her günlük iletisi HTTP yöntemi, kaynak URI'si, istemci IP'si, istemci bağlantı noktası, kullanıcı aracısı, yanıt kodu gibi verileri içerir.
Ayrıntılı Hata İletileri Windows App Service dosya sistemi İstemci tarayıcısına gönderilecek .htm hata sayfalarının kopyaları. Güvenlik nedeniyle, ayrıntılı hata sayfaları üretimdeki istemcilere gönderilmemelidir, ancak App Service, HTTP kodu 400 veya üzeri olan bir uygulama hatası oluştuğunda hata sayfasını kaydedebilir. Sayfa, sunucunun neden hata kodunu döndürdüğünü belirlemeye yardımcı olabilecek bilgiler içerebilir.
Başarısız istek izlemesi Windows App Service dosya sistemi İsteği işlemek için kullanılan IIS bileşenlerinin bir izlemesi ve her bileşende geçen süre de dahil olmak üzere başarısız isteklerle ilgili ayrıntılı izleme bilgileri. Site performansını artırmak veya belirli bir HTTP hatasını yalıtmak istiyorsanız kullanışlıdır. Başarısız olan her istek için xml günlük dosyasını ve günlük dosyasını görüntülemek için XSL stil sayfasını içeren bir klasör oluşturulur.
Dağıtım günlüğü Windows, Linux App Service dosya sistemi Bir uygulamada içerik yayımladığınız zaman için günlüğe kaydeder. Dağıtım günlüğü otomatik olarak gerçekleşir ve dağıtım günlüğü için yapılandırılabilir ayar yoktur. Dağıtımın neden başarısız olduğunu belirlemenize yardımcı olur. Örneğin, özel bir dağıtım betiği kullanıyorsanız, betiğin neden başarısız olduğunu belirlemek için dağıtım günlüğünü kullanabilirsiniz.

Günlükler App Service dosya sisteminde depolandığında fiyatlandırma katmanınız için kullanılabilir depolama alanına tabidir (bkz . App Service sınırları).

Not

App Service, uygulamanızın sorunlarını gidermenize yardımcı olmak için ayrılmış, etkileşimli bir tanılama aracı sağlar. Daha fazla bilgi için bkz. Azure Uygulaması Hizmet tanılamalarına genel bakış.

Ayrıca, uygulamanızın Azure İzleyici gibi günlük ve izleme özelliklerini geliştirmek için diğer Azure hizmetlerini kullanabilirsiniz.

Uygulama günlüğünü etkinleştirme (Windows)

Azure portalında Windows uygulamaları için uygulama günlüğünü etkinleştirmek için uygulamanıza gidin ve App Service günlükleri'ni seçin.

Uygulama Günlüğü (Dosya Sistemi) veya Uygulama Günlüğü (Blob) veya her ikisi için Açık'ı seçin.

Dosya Sistemi seçeneği geçici hata ayıklama amaçlıdır ve 12 saat içinde kapanır. Blob seçeneği uzun süreli günlüğe kaydetmeye yöneliktir ve günlüklerin yazılması için bir blob depolama kapsayıcısı gerekir. Blob seçeneği ayrıca günlük iletilerine günlük iletisinin kaynak VM örneğinin kimliği (), iş parçacığı kimliği (TidInstanceId) ve daha ayrıntılı bir zaman damgası (EventTickCount) gibi ek bilgiler de içerir.

Not

Şu anda blob depolamaya yalnızca .NET uygulama günlükleri yazılabilir. Java, PHP, Node.js, Python uygulama günlükleri yalnızca App Service dosya sisteminde depolanabilir (günlükleri dış depolamaya yazmak için kod değişiklikleri olmadan).

Ayrıca, depolama hesabınızın erişim anahtarlarını yeniden oluşturursanız , güncelleştirilmiş erişim anahtarlarını kullanmak için ilgili günlük yapılandırmasını sıfırlamanız gerekir. Bunu yapmak için:

  1. Yapılandır sekmesinde ilgili günlük özelliğini Kapalı olarak ayarlayın. Ayarınızı kaydedin.
  2. Depolama hesabı blob'unun günlüğe kaydedilmesini yeniden etkinleştirin. Ayarınızı kaydedin.

Günlüğe kaydedilecek Düzey'i veya ayrıntı düzeyini seçin. Aşağıdaki tabloda her düzeye dahil edilen günlük kategorileri gösterilmektedir:

Level Dahil edilen kategoriler
Devre dışı Hiçbiri
Hata Hata, Kritik
Uyarı Uyarı, Hata, Kritik
Bilgi Bilgi, Uyarı, Hata, Kritik
Ayrıntılı İzleme, Hata Ayıklama, Bilgi, Uyarı, Hata, Kritik (tüm kategoriler)

İşlem tamamlandığında Kaydet'i seçin.

Not

Günlükleri bloblara yazarsanız, uygulamayı silerseniz ancak günlükleri bloblarda tutarsanız bekletme ilkesi artık geçerli olmaz. Daha fazla bilgi için bkz . Kaynak silindikten sonra tahakkuk eden maliyetler.

Uygulama günlüğünü etkinleştirme (Linux/Container)

Azure portalında Linux uygulamaları veya özel kapsayıcılar için uygulama günlüğünü etkinleştirmek için uygulamanıza gidin ve App Service günlükleri'ni seçin.

Uygulama günlüğü'nde Dosya Sistemi'ne tıklayın.

Kota (MB) bölümünde uygulama günlükleri için disk kotasını belirtin. Bekletme Süresi 'nde (Gün)günlüklerin kaç gün tutulacağı ayarlayın.

İşlem tamamlandığında Kaydet'i seçin.

Web sunucusu günlüğünü etkinleştirme

Azure portalında Windows uygulamaları için web sunucusu günlüğünü etkinleştirmek için uygulamanıza gidin ve App Service günlükleri'ni seçin.

Web sunucusu günlüğü için günlükleri blob depolamada depolamak için Depolama'i veya App Service dosya sisteminde günlükleri depolamak için Dosya Sistemi'ni seçin.

Bekletme Süresi 'nde (Gün)günlüklerin kaç gün tutulacağı ayarlayın.

Not

Depolama hesabınızın erişim anahtarlarını yeniden oluşturursanız , güncelleştirilmiş anahtarları kullanmak için ilgili günlük yapılandırmasını sıfırlamanız gerekir. Bunu yapmak için:

  1. Yapılandır sekmesinde ilgili günlük özelliğini Kapalı olarak ayarlayın. Ayarınızı kaydedin.
  2. Depolama hesabı blob'unun günlüğe kaydedilmesini yeniden etkinleştirin. Ayarınızı kaydedin.

İşlem tamamlandığında Kaydet'i seçin.

Not

Günlükleri bloblara yazarsanız, uygulamayı silerseniz ancak günlükleri bloblarda tutarsanız bekletme ilkesi artık geçerli olmaz. Daha fazla bilgi için bkz . Kaynak silindikten sonra tahakkuk eden maliyetler.

Ayrıntılı hataları günlüğe kaydetme

Azure portalında Windows uygulamaları için hata sayfasını veya başarısız istek izlemeyi kaydetmek için uygulamanıza gidin ve App Service günlükleri'ni seçin.

Ayrıntılı Hata Günlüğü veya Başarısız İstek İzleme'nin altında Açık'ı ve ardından Kaydet'i seçin.

Her iki günlük türü de App Service dosya sisteminde depolanır. En fazla 50 hata (dosya/klasör) korunur. HTML dosyası sayısı 50'yi aştığında, en eski hata dosyaları otomatik olarak silinir.

Başarısız İstek İzleme özelliği varsayılan olarak 400 ile 600 arasında HTTP durum kodlarıyla başarısız olan isteklerin günlüğünü yakalar. Özel kurallar belirtmek için web.config dosyasındaki bölümü geçersiz kılabilirsiniz<traceFailedRequests>.

Koda günlük iletileri ekleme

Uygulama kodunuzda, uygulama günlüklerine günlük iletileri göndermek için her zamanki günlük olanaklarını kullanırsınız. Örneğin:

Akış günlükleri

Günlükleri gerçek zamanlı olarak akışla aktarmadan önce, istediğiniz günlük türünü etkinleştirin. Konsol çıkışına yazılan veya /home/LogFiles dizininde (D:\home\LogFiles ) depolanan .txt, .log veya .htm biten dosyalar App Service tarafından akışla aktarılır.

Not

Günlük dosyasına bazı günlük arabelleği türleri yazılır ve bu da akışta sıra dışı olaylara neden olabilir. Örneğin, bir kullanıcı bir sayfayı ziyaret ettiğinde gerçekleşen bir uygulama günlüğü girdisi, sayfa isteğine karşılık gelen HTTP günlüğü girdisi öncesinde akışta görüntülenebilir.

Azure portalında

Azure portalında günlük akışı yapmak için uygulamanıza gidin ve Günlük akışı'nı seçin.

Cloud Shell'de

Cloud Shell'de canlı günlük akışı yapmak için aşağıdaki komutu kullanın:

Önemli

Bu komut, Linux uygulama hizmeti planında barındırılan web uygulamalarıyla çalışmayabilir.

az webapp log tail --name appname --resource-group myResourceGroup

HTTP gibi belirli günlük türlerini filtrelemek için --Provider parametresini kullanın. Örneğin:

az webapp log tail --name appname --resource-group myResourceGroup --provider http

Yerel terminalde

Yerel konsolda günlük akışı yapmak için Azure CLI'yı yükleyin ve hesabınızda oturum açın. Oturum açtıktan sonra Cloud Shell yönergelerini izleyin

Günlük dosyalarına erişme

Günlük türü için Azure Depolama blobları seçeneğini yapılandırıyorsanız Azure Depolama ile çalışan bir istemci aracına ihtiyacınız vardır. Daha fazla bilgi için bkz. Azure Depolama İstemci Araçları.

App Service dosya sisteminde depolanan günlükler için en kolay yol şu konumdaki tarayıcıda ZIP dosyasını indirmektir:

  • Linux/özel kapsayıcılar: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Windows uygulamaları: https://<app-name>.scm.azurewebsites.net/api/dump

Linux/özel kapsayıcılar için ZIP dosyası hem docker konağı hem de docker kapsayıcısı için konsol çıkış günlüklerini içerir. Ölçeği genişletilmiş bir uygulama için ZIP dosyası her örnek için bir günlük kümesi içerir. App Service dosya sisteminde, bu günlük dosyaları /home/LogFiles dizininin içeriğidir.

Windows uygulamaları için, ZIP dosyası App Service dosya sistemindeki D:\Home\LogFiles dizininin içeriğini içerir. Aşağıdaki yapıya sahiptir:

Günlükleri türü Dizin Açıklama
Uygulama günlükleri /LogFiles/Application/ Bir veya daha fazla metin dosyası içerir. Günlük iletilerinin biçimi, kullandığınız günlük sağlayıcısına bağlıdır.
Başarısız İstek İzlemeleri /LogFiles/W3SVC#########/ XML dosyalarını ve bir XSL dosyasını içerir. Biçimlendirilmiş XML dosyalarını tarayıcıda görüntüleyebilirsiniz.
Ayrıntılı Hata Günlükleri /LogFiles/DetailedErrors/ HTM hata dosyalarını içerir. HTM dosyalarını tarayıcıda görüntüleyebilirsiniz.
Başarısız istek izlemelerini görüntülemenin bir diğer yolu da portaldaki uygulama sayfanıza gitmektir. Sol menüden Sorunları tanıla ve çöz'ü seçin, Başarısız İstek İzleme Günlükleri'ni arayın, ardından istediğiniz izlemeye göz atmak ve görüntülemek için simgeye tıklayın.
Web Sunucusu Günlükleri /LogFiles/http/RawLogs/ W3C genişletilmiş günlük dosyası biçimi kullanılarak biçimlendirilmiş metin dosyalarını içerir. Bu bilgiler bir metin düzenleyicisi veya Günlük Ayrıştırıcısı gibi bir yardımcı program kullanılarak okunabilir.
App Service , s-ipveya cs-version alanlarını desteklemezs-computername.
Dağıtım günlükleri /LogFiles/Git/ ve /deployments/ hem iç dağıtım işlemleri tarafından oluşturulan günlükleri hem de Git dağıtımları için günlükleri içerir.

Günlükleri Azure İzleyici'ye gönderme

Yeni Azure İzleyici tümleştirmesiyle, Depolama Hesaplarına, Event Hubs'a ve Log Analytics'e günlük göndermek için Tanılama Ayarlar oluşturabilirsiniz.

Tanılama Ayarları

Desteklenen günlük türleri

Aşağıdaki tabloda desteklenen günlük türleri ve açıklamaları gösterilmektedir:

Günlük Adı Günlükleri türü Windows Windows Kapsayıcısı Linux Linux Kapsayıcısı Açıklama
App Service Konsol Günlükleri AppServiceConsoleLogs Java SE & Tomcat Yes Evet Yes Standart çıkış ve standart hata 3
HTTP günlükleri AppServiceHTTPLogs Yes Evet Evet Yes Web sunucusu günlükleri
platform günlüklerini App Service Ortamı AppServiceEnvironmentPlatformLogs Yes YOK Yes Yes App Service Ortamı: ölçeklendirme, yapılandırma değişiklikleri ve durum günlükleri
Denetim Günlüklerine Erişme AppServiceAuditLogs Yes Evet Evet Yes FTP ve Kudu aracılığıyla oturum açma etkinliği
Site İçeriği Değişiklik Denetim Günlükleri AppServiceFileAuditLogs Yes Yes TBA TBA Site içeriğinde yapılan dosya değişiklikleri; yalnızca Premium katman ve üzeri için kullanılabilir
App Service Uygulama Günlükleri AppServiceAppLogs ASP.NET, .NET Core ve Tomcat 1 ASP.NET & Tomcat 1 .NET Core, Java, SE ve Tomcat Blessed Images 2 Java SE & Tomcat Kutsanmış Resimler 2 Uygulama günlükleri 3
IPGüvenlik Denetim günlükleri AppServiceIPSecAuditLogs Yes Evet Evet Yes IP Kurallarından gelen istekler
App Service Platform günlükleri AppServicePlatformLogs TBA Yes Evet Yes Kapsayıcı işlem günlükleri
Virüsten Koruma Denetim Günlüklerini Bildirme AppServiceAntivirusScanAuditLogs 4 Yes Evet Evet Yes Bulut için Microsoft Defender kullanarak virüsten koruma tarama günlükleri; yalnızca Premium katman için kullanılabilir

1 Tomcat uygulamaları için uygulama ayarlarına ekleyin TOMCAT_USE_STARTUP_BAT ve veya 0olarak false ayarlayın. En son Tomcat sürümünde olmanız ve java.util.logging'u kullanmanız gerekir.

2 Java SE uygulamaları için uygulama ayarlarına ekleyin WEBSITE_AZMON_PREVIEW_ENABLED ve veya 1olarak true ayarlayın.

3 Geçerli günlük sınırı dakikada 100 günlük olarak ayarlanır.

4 AppServiceAntivirusScanAuditLogs günlük türü şu anda Önizleme aşamasındadır

Ağ konusunda dikkat edilmesi gerekenler

Tanılama Ayarlar kısıtlamaları için hedef sınırlarıyla ilgili resmi Tanılama Ayarlar belgelerine bakın.

Sonraki adımlar