App Service uygulama günlüğünü etkinleştirme ve yapılandırma
Bu ünitede, uygulama günlüğünün Web uygulamalarınıza nasıl yardımcı olabileceğini ve bu günlüklerin nasıl etkinleştirileceğini göreceksiniz.
Uygulama günlükleri nelerdir?
Uygulama günlükleri uygulama kodundaki çalışma zamanı izleme deyimlerinin çıkışıdır. Örneğin, belirli bir işlevin ne zaman işlendiğini göstermek üzere bir izleme ekleyerek kodunuzda belirli bir mantığı denetlemek veya yalnızca belirli düzeyde bir hata oluştuğunda günlüğe kaydedilen iletiyi görmek isteyebilirsiniz. Uygulama günlüğü öncelikle ön üretim aşamasındaki uygulamalara yöneliktir ve sıkıntı yaratan sorunlar içindir çünkü aşırı günlük kaydı performansı zorlayabilir ve depolamayı hızla tüketir; bu nedenle dosya sistemine günlük kaydı 12 saat sonra otomatik olarak devre dışı bırakılır.
Uygulama günlüğünün ölçek sınırlamaları vardır. Bunun nedeni, dosyaların günlüğe kaydedilen çıkışı kaydetmek için kullanılıyor olmasıdır. Bir uygulamanın birden çok örneğine sahipseniz ve tüm örneklerde aynı depolama paylaşılıyorsa, farklı örneklerden gelen iletiler birbirinin arasına eklenebilir ve bu da sorun gidermeyi zorlaştırabilir. Her örneğin kendi günlük dosyası olursa, birden çok günlük dosyası olacaktır ve bu da yine örneğe özgü sorunları gidermeyi zorlaştıracaktır.
Azure App Service aracılığıyla sağlanan günlük türleri uygulamanın kod çerçevesine ve uygulamanın Windows uygulama konağı üzerinde mi yoksa Linux uygulama konağı üzerinde mi çalıştırıldığına bağlıdır.
ASP.NET
ASP.NET uygulamaları, yalnızca Windows uygulama hizmetleri üzerinde çalışır. Bilgileri uygulama tanılama günlüğüne kaydetmek için System.Diagnostics.Trace sınıfını kullanın. Kullanabileceğiniz dört izleme düzeyi vardır ve bunlar, aşağıda gösterilen error , , ve günlük warning information verbose düzeyleriyle Azure portal:
- Trace.TraceError("Message"); // Bir hata iletisi yazar
- Trace.TraceWarning("Message"); // Bir uyarı iletisi yazar
- Trace.TraceInformation("Message"); // Bir bilgi iletisi yazar
- Trace.WriteLine("Message"); // Ayrıntılı bir ileti yazar
ASP.NET Core uygulamaları
ASP.NET Core uygulamaları Windows veya Linux üzerinde çalıştırılabilir. Bilgileri Azure uygulama günlüklerine kaydetmek için logger factory sınıfını ve sonra da altı günlük düzeyinden birini kullanın:
- logger.LogCritical("Message"); // 5. günlük düzeyinde kritik bir ileti yazar
- logger.LogError("Message"); // 4. günlük düzeyinde bir hata iletisi yazar
- logger.LogWarning("Message"); // 3. günlük düzeyinde bir uyarı iletisi yazar
- logger.LogInformation("Message"); // 2. günlük düzeyinde bir bilgi iletisi yazar
- logger.LogDebug("Message"); // 1. günlük düzeyinde bir hata ayıklama iletisi yazar
- logger.LogTrace("Message"); // 0. günlük düzeyinde ayrıntılı bir izleme iletisi yazar
Windows üzerinde ASP.NET Core uygulamaları için, bu iletiler Azure portalındaki filtrelerle şu şekilde ilişkilendirilir:
-
- ve 5. düzeyler "hata" iletileridir.
-
- düzey "uyarı" iletisidir.
-
- düzey "bilgi" iletisidir.
-
- ve 1. düzeyler "ayrıntılı" iletilerdir.
Linux üzerinde ASP.NET Core uygulamaları için, yalnızca "hata" iletileri (4. ve 5. düzeyler) günlüğe kaydedilir.
Node.js uygulamaları
Windows veya Linux üzerindeki Node.js uygulamaları gibi betik tabanlı Web uygulamaları için, uygulama günlüğü console() yöntemi kullanılarak etkinleştirilir:
- console.error("Message") - STDERR'ye bir ileti yazar
- console.log("Message") - STDOUT'a bir ileti yazar
Her iki tür ileti de Azure App Service hata düzeyi günlüklerine yazılır.
Windows ile Linux ana bilgisayarlar arasındaki günlük farkları
Azure Web uygulamaları iletileri günlük dosyalarına yönlendirmek için Web sunucusu (IIS işlemi) kullanır. Windows tabanlı Web uygulamaları iyi tanınan bir Azure hizmetidir ve ASP.NET uygulamalarının mesajlaşması ile temel IIS hizmeti arasında sıkı bir tümleştirme vardır. Windows uygulamaları zengin bir günlük altyapısından yararlanır. Diğer uygulamalar için, bir Windows uygulama hizmeti üzerinde çalışıyor olsa bile günlük seçenekleri geliştirme platformu tarafından sınırlanabilir.
Node gibi Linux tabanlı betik uygulamalarına sağlanan günlük işlevselliği, uygulamanın kapsayıcısı için kullanılan Docker görüntüsü tarafından belirlenir. Temel günlükte, STDERR veya STDOUT'a yeniden yönlendirmeler aracılığıyla Docker günlükleri kullanılır. Daha zengin günlük işlevselliği temel görüntüye bağlıdır (PHP, Perl, Ruby vb. çalıştırıp çalıştırmadığı gibi). Windows uygulamalarına IIS tarafından sağlanan gibi eşdeğer bir Web uygulama günlüğü indirmek için, SSH kullanarak kapsayıcınıza bağlanmanız gerekebilir.
Aşağıdaki tabloda yaygın uygulama ortamları ve konaklara yönelik günlük desteği özetlenmiştir.
| Uygulama ortamı | Yönetici | Günlük düzeyleri | Kaydetme konumu |
|---|---|---|---|
| ASP.NET | Windows | Hata, Uyarı, Bilgi, Ayrıntılı | Dosya sistemi, Blob depolama |
| ASP.NET Core | Windows | Hata, Uyarı, Bilgi, Ayrıntılı | Dosya sistemi, Blob depolama |
| ASP.NET Core | Linux | Hata | Dosya sistemi |
| Node.js | Windows | Hata (STDERR), Bilgi (STDOUT), Uyarı, Ayrıntılı | Dosya sistemi, Blob depolama |
| Node.js | Linux | Hata | Dosya sistemi |
| Java | Linux | Hata | Dosya sistemi |
Uygulama tanılamanın alternatifleri
Azure Application Insights, ayrıntılı kullanım ve performans verileri gibi ek performans izleme özellikleri sağlayan bir site uzantısıdır ve hem üretim uygulama dağıtımları için hem de kullanışlı olabilecek bir geliştirme aracı olarak tasarlanmıştır. Application Insights bir dizi uygulama geliştirme ortamında çalışır ve uygulamanın ASP.NET veya Node olmasına bakılmaksızın aynı zengin telemetri ve performans verileri kümesini sağlar. Öte yandan, Application Insights'ı kullanabilmek için App Insights SDK'sını kullanıp uygulamanıza belirli bir kod eklemeniz gerekir. Application Insights aynı zamanda faturalanabilir bir hizmettir; dolayısıyla uygulama dağıtımlarınızın ve toplanan verilerinizin ölçeğine bağlı olarak, düzenli maliyetler için planlama yapmanız gerekebilir.
Ayrıca uygulamanız için Ölçümler'i görüntüleyebilirsiniz ve bunlar uygulamanızın çalışmasının profilini çıkarmanıza yardımcı olabilir. Bu sayaçlar hem üretimde hem de geliştirmede yararlıdır. CPU, bellek, ağ ve dosya sistemi kullanımını görüntüleyebilir, bir sayaç belirli bir eşiğe ulaştığında uyarılar ayarlayabilirsiniz. Ölçümlerin faturalaması, uygulama hizmeti plan katmanına dahildir.
Azure portalını kullanarak günlüğü etkinleştirme
Portalda, uygulama günlüğü web uygulamasının Tanılama günlükleri bölmesinden yönetilir.

Web uygulamasının dosya sistemine uygulama günlüğü kaydını etkinleştirmek için, Uygulama Günlüğü (Dosya Sistemi) seçeneğini Açık olarak ayarlayın ve Düzey ayarı olarak da Hata, Uyarı, Bilgi veya Ayrıntılı’yı seçin. Dosya sisteminde günlüğe kaydetme işlemi 12 saat sonra otomatik olarak Kapalı ayarına sıfırlanır.
Blob depolama kapsayıcısında uygulama günlüğünü etkinleştirmek için, Uygulama günlüğü (Blob) seçeneğini Açık olarak ayarlayın, sonra da depolama hesabı ve kapsayıcı seçin; depolama hesabının ve Web uygulamasının aynı Azure bölgesinde oluşturulmuş olması gerekir. Bundan sonra Düzey ayarı olarak Hata, Uyarı, Bilgi veya Ayrıntılı'yı seçersiniz.
Not
Blob depolamaya kaydetme seçeneği Linux uygulama günlüklerinde kullanılamaz.
Blob depolamada günlüğe kaydederken Bekletme Süresi'ni de ayarlamalısınız. Dosya sistemi günlüklerinden farklı olarak blog günlükleri hiçbir zaman varsayılan olarak silinmez; bekletme süresi seçeneği, belirtilen gün sayısından eski olan tüm günlüklerin silineceği anlamına gelir.

Günlükleri yapılandırdıktan sonra Kaydet’i seçin.
Azure CLI'yı kullanarak günlüğü etkinleştirme
Azure CLI'nın geçerli sürümü, blob depolamada uygulama günlüğünü yönetmenize olanak tanımaz. Dosya sisteminde uygulama günlüğünü etkinleştirmek için aşağıdaki komutu çalıştırın.
az webapp log config --application-logging true --level verbose --name <app-name> --resource-group <resource-group-name>
Örneğin, contosofashions123 adlı bir uygulamada dosyası sistemine günlük kaydını etkinleştirmek, tüm iletileri yakalamak için aşağıdaki komutu çalıştırın.
az webapp log config --application-logging true --level verbose --name contosofashions123 --resource-group contosofashionsRG
Şu anda Azure CLI komutlarını kullanarak uygulama günlüğünü devre dışı bırakmak için hiçbir yol sağlanmamaktadır; öte yandan aşağıdaki komut dosya sistemi günlüğünü yalnızca hata düzeyine sıfırlar.
az webapp log config --application-logging false --name <app-name> --resource-group <resource-group-name>
Uygulamanın geçerli günlük durumunu görüntülemek için şu komutu kullanın.
az webapp log show --name <app-name> --resource-group <resource-group-name>
Bilginizi ölçün
Yardıma mı ihtiyacınız var? Sorun giderme kılavuzumuza gözatın veya sorun bildirerek belirli bir konuda geri bildiriminizi paylaşın.