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

Not

1 Haziran 2024'den itibaren, yeni oluşturulan tüm App Service uygulamaları adlandırma kuralını <app-name>-<random-hash>.<region>.azurewebsites.netkullanarak benzersiz bir varsayılan ana bilgisayar adı oluşturma seçeneğine sahip olacaktır. Mevcut uygulama adları değişmeden kalır.

Örnek: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Diğer ayrıntılar için App Service Kaynağı için Benzersiz Varsayılan Ana Bilgisayar Adı'na bakın.

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ük yönergelerine ek olarak, Azure İzleyici tümleşik günlüğe kaydetme özelliğini de kullanabilirsiniz. Bu özellik hakkında daha fazla bilgi için Bkz. Günlükleri Azure İzleyici'ye gönderme.

Tür Platform Günlük depolama konumu 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 her 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. 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 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 ve 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'yı 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 veya 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:

  • 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 Çekirdek günlüğü. Web İşleri SDK'sı günlüğü hakkında bilgi için bkz . Azure Webjobs SDK'sını kullanmaya başlama.

  • Python uygulamaları, uygulama tanılama günlüğüne günlük göndermek için OpenCensus paketini kullanabilir.

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 olayların akışta yanlış sırada görünmesine 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 dosyalara erişmenin en kolay yolu ş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. Dağıtım günlükleri /site/dağıtımlar/ içinde depolanır.

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 ve 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 dosyaları bir metin düzenleyicisi veya Günlük Ayrıştırıcısı gibi bir yardımcı program kullanarak okuyabilirsiniz.
App Service , s-ipveya cs-version alanlarını desteklemezs-computername.
Dağıtım günlükleri /LogFiles/Git/ ve /deployments/ İç dağıtım işlemleri tarafından oluşturulan günlüklerin yanı sıra Git dağıtımları için günlükleri içerir.

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

Azure İzleyici tümleştirmesi ile depolama hesaplarına, olay hub'larına ve Log Analytics'e günlük 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.

Tanılama Ayarları

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ğ 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