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:
- Yapılandır sekmesinde ilgili günlük özelliğini kapalı olarak ayarlayın. Ayarınızı kaydedin.
- 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:
- Yapılandır sekmesinde ilgili günlük özelliğini kapalı olarak ayarlayın. Ayarınızı kaydedin.
- 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:
ASP.NET uygulamalar, uygulama tanılama günlüğüne bilgileri günlüğe kaydetmek için System. Diagnostics. Trace sınıfını kullanabilir. Örneğin:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");varsayılan olarak ASP.NET Core, Microsoft. Extensions. Logging. AzureAppServices günlük sağlayıcısını kullanır. daha fazla bilgi için bkz. Azure 'da günlüğe kaydetme ASP.NET Core. WebJobs SDK günlüğü hakkında daha fazla bilgi için bkz . Azure WebJobs SDK ile çalışmaya başlama
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 .

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