Aracılığıyla paylaş


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

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:

  1. Uygulamanıza gidin ve İzleme>Uygulama Hizmeti günlükleri seçeneğini seçin.

  2. 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.

  3. 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)
  4. 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:

  1. Yapılandır sekmesinde, ilgili günlük kaydı özelliğini Kapalı olarak ayarlayın. Ayarınızı kaydedin.

  2. 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:

  1. Uygulamanıza gidin ve İzleme>Uygulama Hizmeti günlükleri seçeneğini seçin.

  2. Uygulama günlüğü'nde Dosya Sistemi'ne tıklayın.

  3. Kota (MB) bölümünde uygulama günlükleri için disk kotasını belirtin.

  4. Bekletme Süresi (Gün) bölümünde günlüklerin tutulacak gün sayısını ayarlayın.

  5. 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:

  1. Uygulamanıza gidin ve İzleme>Uygulama Hizmeti günlükleri seçeneğini seçin.

  2. 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.

  3. Bekletme Süresi (Gün) bölümünde günlüklerin tutulacak gün sayısını ayarlayın.

  4. 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:

  1. Yapılandır sekmesinde, ilgili günlük kaydı özelliğini Kapalı olarak ayarlayın. Ayarınızı kaydedin.

  2. 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:

  1. Uygulamanıza gidin ve İzleme>Uygulama Hizmeti günlükleri seçeneğini seçin.

  2. Ayrıntılı hata mesajları veya Başarısız istek izleme altında, Açık seçin.

  3. 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:

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.

  1. Uygulamanızı Azure portalında açın ve Geliştirme Araçları> ve ardından Git'i seçin.
  2. 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.

Teşhis ayarlarını görüntülemek ve bir teşhis ayarı eklemek için seçenekleri gösteren ekran görüntüsü.

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ı.

İlgili içerik