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

Genel Bakış

Azure, App Service bir uygulamadahata 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 nasıl araç ekleneceğini ve Azure tarafından günlüğe kaydedilen bilgilere nasıl erişebileceğinizi öğreneceksiniz.

Bu makalede tanılama günlükleri ile çalışmak için Azure Portal ve Azure CLI kullanılmaktadır. Visual Studio kullanarak tanılama günlükleri ile çalışma hakkında daha fazla bilgi için bkz. Visual Studio Azure sorunlarını giderme.

Not

Bu makaledeki günlüğe kaydetme yönergelerine ek olarak, Azure Izleme ile yeni ve tümleşik günlüğe kaydetme özelliği de mevcuttur. Bu özellikten daha fazla bilgi edinmek için günlükleri Azure Izleyicisine gönder bölümünde bulabilirsiniz.

Tür Platform Konum Description
Uygulama günlüğüne kaydetme Windows, Linux App Service dosya sistemi ve/veya Azure Depolama blob 'ları Uygulama kodunuz tarafından oluşturulan iletileri günlüğe kaydeder. İletiler seçtiğiniz Web çerçevesi tarafından veya Dilinizdeki standart günlük modelini kullanarak doğrudan uygulama kodunuzda oluşturulabilir. Her ileti şu kategorilerden birine atanır: kritik, hata, Uyarı, bilgi, hata ayıklama ve izleme. 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üğü Windows App Service dosya sistemi veya Azure Depolama blob 'ları W3C Genişletilmiş günlük dosyası biçimindekiham http istek verileri. Her günlük iletisi HTTP yöntemi, kaynak URI, istemci IP, istemci bağlantı noktası, Kullanıcı Aracısı, yanıt kodu vb. gibi verileri içerir.
Ayrıntılı hata Iletileri Windows App Service dosya sistemi İstemci tarayıcısına gönderilen .htm hata sayfalarının kopyaları. Güvenlik nedenleriyle, ayrıntılı hata sayfaları üretimde istemcilere gönderilmemelidir, ancak App Service HTTP kodu 400 veya üzerini içeren bir uygulama hatası oluştuğunda hata sayfasını kaydedebilirler. Sayfa, sunucunun neden hata kodunu döndürdüğünü belirlemede yardımcı olabilecek bilgiler içerebilir.
Başarısız istek izleme Windows App Service dosya sistemi İsteği işlemek için kullanılan IIS bileşenlerinin izlenmesi ve her bileşende geçen süre dahil olmak üzere, başarısız istekler hakkında ayrıntılı izleme bilgileri. Site performansını artırmak veya belirli bir HTTP hatasını yalıtmak istiyorsanız yararlı olur. XML günlük dosyasını içeren her başarısız istek için bir klasör oluşturulur ve günlük dosyasını ile görüntülemek için XSL stil sayfası.
Dağıtım günlüğü Windows, Linux App Service dosya sistemi Bir uygulamaya içerik yayımladığınızda günlüğe kaydedilir. Dağıtım günlüğü otomatik olarak gerçekleşir ve dağıtım günlüğü için yapılandırılabilir bir 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ğikullanıyorsanız, betiğin neden başarısız olduğunu anlamak için dağıtım günlüğünü kullanabilirsiniz.

Not

App Service, uygulamanızda sorun gidermenize yardımcı olmak için adanmış, etkileşimli bir tanılama aracı sağlar. Daha fazla bilgi için bkz. Azure App Service tanılamayı genel bakış.

Ayrıca, Azure izleyicigibi uygulamanızın günlüğe kaydetme ve izleme yeteneklerini geliştirmek Için diğer Azure hizmetlerini de kullanabilirsiniz.

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

Not

BLOB depolama için uygulama günlüğü, depolama hesaplarını yalnızca App Service ile aynı bölgede kullanabilir

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

Uygulama günlüğü (dosya sistemi) veya uygulama günlüğü (blob) ya da her ikisi için Açık seçeneğini belirleyin.

Dosya sistemi seçeneği geçici hata ayıklama amaçlarıyla yapılır ve 12 saat içinde kendisini kapatır. BLOB seçeneği uzun süreli günlüğe kaydetme içindir ve günlükleri yazmak için bir BLOB depolama kapsayıcısı gerekir. BLOB seçeneği Ayrıca günlük iletilerinde ( InstanceId ), iş parçacığı kimliği ( Tid ) ve daha ayrıntılı bir zaman damgasına () ait kaynak sanal makine örneğinin kimliği gibi ek bilgiler içerir EventTickCount .

Not

Şu anda yalnızca .NET uygulama günlükleri blob depolamaya 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, ilgili günlük yapılandırmasını, güncelleştirilmiş erişim anahtarlarını kullanacak şekilde 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ı blobuna yeniden günlük kaydını etkinleştirin. Ayarınızı kaydedin.

Günlüğe kaydedilecek ayrıntı düzeyini veya düzeyi seçin. Aşağıdaki tabloda her düzeyde bulunan 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
Seçeneini Trace, Debug, Info, uyarı, hata, kritik (tüm kategoriler)

İşiniz bittiğinde 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 silme işleminden sonra tahakkuk eden maliyetler.

Uygulama günlüğünü etkinleştir (Linux/container)

Azure PortalLinux uygulamaları veya özel kapsayıcı uygulamaları için uygulama günlüğünü etkinleştirmek üzere uygulamanıza gidin ve App Service Günlükler' i seçin.

Uygulama günlüğü' nde dosya sistemi' ni seçin.

Kota (MB) alanında uygulama günlükleri için disk kotasını belirtin. Bekletme süresi (gün) alanında günlüklerin saklanacağı gün sayısını ayarlayın.

İşiniz bittiğinde Kaydet' i seçin.

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

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

Web sunucusu günlüğü için, günlükleri blob depolamada depolamak üzere Depolama ' yi veya günlükleri App Service dosya sisteminde depolamak için dosya sistemi ' ni seçin.

Bekletme süresi (gün) alanında günlüklerin saklanacağı gün sayısını 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ı blobuna yeniden günlük kaydını etkinleştirin. Ayarınızı kaydedin.

İşiniz bittiğinde 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 silme işleminden sonra tahakkuk eden maliyetler.

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

Azure portalWindows 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 Istek izleme altında Açık' ı seçin ve ardından Kaydet' i seçin.

Her iki günlük türü de App Service dosya sisteminde depolanır. 50 ' e kadar hata (dosya/klasör) korunur. HTML dosyalarının sayısı 50 ' i aşarsa, en eski hata dosyaları otomatik olarak silinir.

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

Koda günlük iletileri ekleme

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

Akış günlükleri

Günlükleri gerçek zamanlı olarak akışa almadan önce istediğiniz günlük türünü etkinleştirin. /LogFiles dizininde (d:/Home/LogFiles) depolanan .txt,. log veya .htm biten dosyalara yazılan bilgiler App Service tarafından akışla kaydedilir.

Not

Bazı günlük arabelleği türleri günlük dosyasına yazılır, bu da akıştaki sıra olayları oluşmasına neden olabilir. Örneğin, bir Kullanıcı bir sayfayı ziyaret ettiğinde oluşan bir uygulama günlüğü girişi, sayfa isteği için karşılık gelen HTTP günlük girişinden önce akışta görüntülenebilir.

Azure portal

Azure Portalgünlükleri akışa almak için uygulamanıza gidin ve günlük akışı' nı seçin.

Cloud Shell

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

Önemli

Bu komut, bir Linux App Service 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

Günlükleri yerel konsolda akışa almak için Azure CLI 'yı yükleyip hesabınızda oturum açın. Oturum açtıktan sonra, Cloud Shell için yönergeler izlenir

Günlük dosyalarına erişin

azure Depolama blob seçeneğini bir günlük türü için yapılandırırsanız, azure Depolama ile birlikte çalışarak bir istemci aracına ihtiyacınız vardır. daha fazla bilgi için bkz. Azure Depolama istemci araçları.

App Service dosya sisteminde depolanan Günlükler için en kolay yol, ZIP dosyasını şu adresten tarayıcıda indirmeniz:

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

Linux/kapsayıcı uygulamaları için, ZIP dosyası hem Docker konağının hem de Docker kapsayıcısının konsol çıkış günlüklerini içerir. Ölçekli 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, zıp dosyası App Service dosya sistemindeki d:\home\logfiles dizininin içeriğini içerir. Aşağıdaki yapıya sahiptir:

Günlük türü Dizin Description
Uygulama günlükleri /LogFiles/Application/ Bir veya daha fazla metin dosyası içeriyor. 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 Istek Izlemeleri /LogFiles/W3SVC # # # # # # # # #/ XML dosyalarını ve bir XSL dosyasını içerir. Biçimli 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 başka yolu da portalda uygulama sayfanıza gitmenin bir yoludur. Sol menüden Tanıla ve sorunları çöz' ü seçin, sonra başarısız istek izleme günlüklerini arayın ve ardından istediğiniz izlemeye gözatıp 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çimikullanılarak biçimlendirilen metin dosyalarını içerir. Bu bilgiler, bir metin düzenleyici veya günlük ayrıştırıcısıgibi bir yardımcı program kullanılarak okunabilir.
App Service s-computername ,, s-ip veya alanlarını desteklemez cs-version .
Dağıtım günlükleri /LogFiles/git/ ve /Deployments/ Ayrıca, iç dağıtım işlemlerine ve git dağıtımları günlüklerine göre oluşturulan günlükleri içerir.

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

yeni Azure izleyici tümleştirmesiyle, günlükleri Depolama hesaplara Event Hubs ve Log Analytics göndermek için tanı 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 türü Windows Windows Kapsayıcı Linux Linux kapsayıcısı Description
AppServiceConsoleLogs Java SE & tomcat Yes Yes Yes Standart çıkış ve standart hata
AppServiceHTTPLogs Yes Yes Yes Yes Web sunucusu günlükleri
AppServiceEnvironmentPlatformLogs Yes YOK Evet Yes App Service Ortamı: ölçekleme, yapılandırma değişiklikleri ve durum günlükleri
AppServiceAuditLogs Yes Yes Yes Yes FTP ve kudu aracılığıyla oturum açma etkinliği
AppServiceFileAuditLogs Yes Yes TBA dili TBA dili Site içeriğinde yapılan dosya değişiklikleri; yalnızca Premium katmanı ve üzeri için kullanılabilir
AppServiceAppLogs ASP.NET & tomcat 1 ASP.NET & tomcat 1 Java SE & tomcat resimleri 2 Java SE & tomcat resimleri 2 Uygulama günlükleri
AppServiceIPSecAuditLogs Yes Yes Yes Yes IP kurallarından gelen istekler
AppServicePlatformLogs TBA dili Yes Yes Yes Kapsayıcı işlem günlükleri
AppServiceAntivirusScanAuditLogs 3 Yes Yes Yes Yes Bulut için Microsoft Defender kullanan Virüsten koruma taraması günlükleri ; yalnızca Premium katmanı için kullanılabilir

1 Tomcat uygulamaları için TOMCAT_USE_STARTUP_BAT uygulama ayarlarına ekleyin ve veya olarak ayarlayın false 0 . En son Tomcat sürümünde olması gerekir ve Java. util. Logging kullanın.

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

3 AppServiceAntivirusScanAuditLogs günlük türü halen önizleme aşamasındadır

Sonraki adımlar