Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure, Azure App Service uygulamasında hata ayıklamaya yardımcı olmak için yerleşik tanılama sağlar. Bu makalede, tanılama kaydını etkinleştirmeyi ve uygulamanıza izleme eklemeyi öğreneceksiniz. Ayrıca Azure'un günlüklere kaydettiği bilgilere nasıl erişeceğinizi öğrenirsiniz.
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, Visual Studio kullanarak Azure App Service'de bir uygulamayı tanılama sayfasına bakın.
Bu makaledeki günlük yönergelerine ek olarak Azure İzleyici entegre loglama özelliğini de kullanabilirsiniz. Daha fazla bilgi için Azure Monitor'a günlük gönderme konusuna bakın.
Uyarı
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ış.
Azure İzleyici gibi uygulamanızın günlüğe kaydetme ve izleme özelliklerini geliştirmek için diğer Azure hizmetlerini de kullanabilirsiniz.
Günlük türleri genel bakış
Türü | Platforma | Kayıt depolama konumu | Açıklama |
---|---|---|---|
Uygulama kaydı | Windows, Linux | App Service dosya sistemi ve/veya Azure Depolama blobları | Uygulama kodunuzun oluşturduğu günlük iletileri. Seçtiğiniz web framework tarafından veya dilinizin standart günlükleme yöntemini kullanarak doğrudan uygulama kodunuzdan mesajlar üretilebilir. Her iletiye şu kategorilerden biri atanır: Kritik, Hata, Uyarı, Bilgi, Hata Ayıklama veya İ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ük kaydı | 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ı ve yanıt kodu gibi verileri içerir. |
Ayrıntılı hata iletileri | 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 takibi | 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. Bu bilgiler, site performansını geliştirmek veya belirli bir HTTP hatasını yalıtmak istiyorsanız yararlıdır. Başarısız olan her istek için bir klasör oluşturulur. Klasör, günlük dosyasını görüntülemek için XML günlük dosyasını ve XSL stil sayfasını içerir. |
Dağıtım günlüğü | Windows, Linux | App Service dosya sistemi | Uygulamaya içerik yayınladığınızda alınan kayıtlar. 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ına bağlı olarak mevcut depolama alanına tabidir. Daha fazla bilgi için bkz . App Service sınırları.
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 İzleme>Uygulama Hizmeti günlükleri seçeneğini seçin.
Bu seçeneklerden biri veya her ikisi için Açık'ı seçin:
Uygulama günlük kaydı (Dosya sistemi): Bu seçenek, geçici hata ayıklama amaçları için kullanılmaktadır. 12 saat içinde kendi kendini kapatır.
Uygulama günlük kaydı (Blob): Bu seçenek, uzun süreli kayıt için kullanılabilir. Günlükleri yazmak için bir blob depolama konteynerine ihtiyaç duyar.
Blob seçeneği, günlük iletilerine, günlük iletisi kaynağı sanal makine örneğinin kimliği (
InstanceId
), iş parçacığı kimliği (Tid
) ve daha ayrıntılı bir zaman damgası (EventTickCount
) gibi ek bilgiler içerir.
Düzey için, kaydedilecek detay seviyesini seçin. Aşağıdaki tablo, her seviyede yer alan günlük kategorilerini göstermektedir.
Seviye 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) Kaydetseçeneğini seçin.
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.
Şu anda blob depolamaya yalnızca .NET uygulama günlükleri yazılabilir. Java, PHP, Node.js ve Python uygulama günlükleri, kod değişiklikleri olmadan yalnızca App Service dosya sistemine kaydedilebilir ve dış depolama alanına yazılmadan saklanabilir.
Depolama hesabınızın erişim anahtarlarını yeniden oluşturacaksanız, güncelleştirilmiş erişim anahtarlarını kullanmak için ilgili günlük yapılandırmasını sıfırlamanız gerekir:
Yapılandır sekmesinde, ilgili günlük kaydı özelliğini Kapalı olarak ayarlayın. Ayarınızı kaydedin.
Depolama hesabının blob'u için günlük kaydını yeniden etkinleştirin. Ayarınızı kaydedin.
Uygulama günlüğünü etkinleştirme (Linux veya kapsayıcı)
Azure portalında Linux uygulamaları veya özel kapsayıcılar için uygulama günlüğünü etkinleştirmek için:
Uygulamanıza gidin ve İzleme>Uygulama Hizmeti günlükleri seçeneğini 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 (Gün) bölümünde günlüklerin tutulacak gün sayısını ayarlayın.
Kaydetseçeneğini 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 İzleme>Uygulama Hizmeti günlükleri seçeneğini seçin.
Web sunucusu günlüğü için, günlükleri blob depolamada depolamak için Depolama'yı seçin veya App Service dosya sisteminde günlükleri depolamak için Dosya Sistemi'ni seçin.
Bekletme Süresi (Gün) bölümünde günlüklerin tutulacak gün sayısını ayarlayın.
Kaydetseçeneğini seçin.
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.
Depolama hesabınızın erişim anahtarlarını yeniden oluşturduğunuzda, güncelleştirilmiş anahtarları kullanmak için ilgili günlük yapılandırmasını sıfırlamanız gerekir:
Yapılandır sekmesinde, ilgili günlük kaydı özelliğini Kapalı olarak ayarlayın. Ayarınızı kaydedin.
Depolama hesabının blob'u için günlük kaydını yeniden etkinleştirin. Ayarınızı kaydedin.
Ayrıntılı hataları günlüğe kaydet
Azure portalında Windows uygulamaları için hata sayfasını veya başarısız istek izlemelerini kaydetmek için:
Uygulamanıza gidin ve İzleme>Uygulama Hizmeti günlükleri seçeneğini seçin.
Ayrıntılı hata mesajları veya Başarısız istek izleme altında, Açık seçin.
Kaydetseçeneğini seçin.
Her iki günlük türü de App Service dosya sisteminde depolanır. 50 hata (dosya veya klasör) saklar. HTML dosyalarının sayısı 50'yi aştığında, App Service en eski hata dosyalarını siler.
Varsayılan olarak, başarısız istek izleme, 400 ile 600 arasında HTTP durum kodlarıyla başarısız olan isteklerin günlüğünü yakalar. Özel kuralları belirtmek için, <traceFailedRequests>
dosyasında Web.config
bölümünü geçersiz kılın.
Koda günlük iletileri ekleme
Uygulama kodunuzda, günlük mesajlarını uygulama günlüklerine göndermek için olağan günlükleme olanaklarını kullanabilirsiniz. Örneğin:
ASP.NET uygulamalar, bilgileri uygulama tanılama günlüğüne 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 ASP.NET Core günlüğü. Azure WebJobs SDK günlüğü hakkında bilgi için bkz. Azure WebJobs SDK'sını kullanmaya başlama.
Python uygulamaları, uygulamanın tanılama günlüğüne günlükleri göndermek için OpenTelemetry'yi kullanabilir. Daha fazla bilgi için Enable Azure Monitor OpenTelemetry sayfasına bakın.
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. App Service, konsol çıkışına yazılan bilgilerin yanı sıra /home/LogFiles
dizininde depolanan .txt, .log veya .htm uzantılı dosyaların akışını sağlar.
Uyarı
Bazı günlük arabellek türleri günlük dosyasına yazar, bu olayların akışta yanlış sırada görünmesine neden olabilir. Örneğin, bir kullanıcı bir sayfayı ziyaret ettiğinde oluşan bir uygulama günlüğü girdisi, sayfa isteğine karşılık gelen HTTP günlük girdisi öncesinde akışta görüntülenebilir.
Azure portalı
Azure portal'da günlükleri yayınlamak için, uygulamanıza gidin ve İzleme>Günlük akışı'nı seçin.
Cloud Shell
Azure Cloud Shell'de canlı günlük akışı yapmak için aşağıdaki komutu kullanın.
Önemli
Bu komut, Linux tabanlı bir 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 parametresini --provider
kullanın. Örneğin:
az webapp log tail --name appname --resource-group myResourceGroup --provider http
Yerel terminal
Yerel konsolda günlük akışı yapmak için Azure CLI'yi 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 ile çalışmaya yönelik Microsoft istemci araçları.
App Service dosya sisteminde depolanan günlükler için Kudu altyapısını kullanarak bunlara erişin.
- Uygulamanızı Azure portalında açın ve Geliştirme Araçları> ve ardından Git'i seçin.
- Kudu'da Araçlar>Tanılama dökümü'nü seçin.
Linux veya ö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çeklenmiş bir uygulama için ZIP dosyası her örnek için bir günlük seti içerir. App Service dosya sisteminde, bu günlük dosyaları /home/LogFiles
dizininin içeriğidir. Dağıtım günlükleri içinde /site/deployments/
depolanır.
Windows uygulamaları için, ZIP dosyası App Service dosya sistemindeki dizinin içeriğini D:\Home\LogFiles
içerir. Aşağıdaki yapıya sahiptir:
Kayıt türü | Dizin | Açıklama |
---|---|---|
Uygulama günlüğü | /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 istek izleme | /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üğü | /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. Soldaki menüde Tanıla ve Sorunları Çöz'ü seçin. Başarısız İstek İzleme Günlükleri'ni arayın ve istediğiniz izlemeye göz atmak ve görüntülemek için simgeyi seçin. |
Web sunucusu günlüğü | /LogFiles/http/RawLogs/ |
W3C genişletilmiş günlük dosyası formatını kullanarak biçimlendirilmiş metin dosyalarını içerir. Bir metin düzenleyicisi veya Günlük Ayrıştırıcısı gibi bir araç kullanarak bu dosyaları okuyabilirsiniz. App Service, s-computername , s-ip ve cs-version alanlarını desteklemez. |
Dağıtım günlüğü |
/LogFiles/Git/ ve /deployments/ |
Git dağıtımları için günlüklerin yanı sıra iç dağıtım işlemleri tarafından oluşturulan günlükleri içerir. |
Günlükleri Azure Monitor'a gönderme
Azure Monitor entegrasyonu ile günlükleri depolama hesaplarına, olay hub'larına ve Log Analytics çalışma alanlarına göndermek için tanılama ayarları oluşturabilirsiniz. Tanılama ayarı eklediğinizde App Service uygulama ayarları ekler ve bu da uygulamanın yeniden başlatılmasını tetikler.
Desteklenen günlük türleri
Desteklenen günlük türlerinin listesi ve açıklamaları için bkz . Microsoft.Web için desteklenen kaynak günlükleri.
Ağ ile ilgili dikkat edilmesi gerekenler
Tanılama ayarlarına yönelik kısıtlamalar hakkında bilgi için bkz . Hedef sınırları.