Azure Container Apps'te Java uygulamalarının sorunlarını gidermek için dinamik günlükçü düzeyini ayarlama (önizleme)

Azure Container Apps platformu, Azure Container Apps üzerinde çalışan Java uygulamalarında daha kolay ve verimli bir şekilde hata ayıklamalarına ve sorunlarını gidermelerine yardımcı olmak için yalnızca Java geliştiricilerine yönelik yerleşik bir tanılama aracı sunar. Önemli özelliklerden biri, varsayılan olarak gizli olan günlük ayrıntılarına erişmenizi sağlayan dinamik günlükçü düzeyi değişikliğidir. Etkinleştirildiğinde, günlük bilgileri kod değişikliği yapılmadan veya günlük düzeylerini değiştirirken uygulamanızı yeniden başlatmaya zorlanmadan toplanır.

Başlamadan önce, Azure CLI'nızdaki Azure Container Apps uzantısını 0.3.51 veya üzeri bir sürüme yükseltmeniz gerekir.

az extension update --name containerapp

Java uygulamalarınız için JVM tanılamasını etkinleştirme

Java tanılama aracını kullanmadan önce Azure Container Apps'iniz için Java Sanal Makinesi (JVM) tanılamasını etkinleştirmeniz gerekir. Bu adım, uygulamanıza gelişmiş bir tanılama aracısı ekleyerek Java tanılama işlevselliğini etkinleştirir. Uygulamanız bu işlem sırasında yeniden başlatabilir.

Bu tanılama araçlarından yararlanmak için, etkin olan yeni bir kapsayıcı uygulaması oluşturabilir veya mevcut bir kapsayıcı uygulamasını güncelleştirebilirsiniz.

JVM tanılamaları etkinleştirilmiş yeni bir kapsayıcı uygulaması oluşturmak için aşağıdaki komutu kullanın:

az containerapp create --enable-java-agent \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --name <CONTAINER_APP_NAME>

Mevcut bir kapsayıcı uygulamasını güncelleştirmek için aşağıdaki komutu kullanın:

az containerapp update --enable-java-agent \
  --resource-group <RESOURCE_GROUP> \
  --name <CONTAINER_APP_NAME>

Çalışma zamanı günlükçü düzeylerini değiştirme

JVM tanılamasını etkinleştirdikten sonra, uygulamanızı yeniden başlatmanıza gerek kalmadan çalışan Java uygulamanızdaki belirli günlükçülerin çalışma zamanı günlük düzeylerini değiştirebilirsiniz.

Aşağıdaki örnek günlük düzeyiyle infogünlükçü adını org.springframework.boot kullanır. Bu değerleri kendi günlükçü adınız ve düzeyinizle eşleşecek şekilde değiştirdiğinizden emin olun.

Belirli bir günlükçü için günlük düzeylerini ayarlamak için aşağıdaki komutu kullanın:

az containerapp java logger set \
  --logger-name "org.springframework.boot" \
  --logger-level "info"
  --resource-group <RESOURCE_GROUP> \
  --name <CONTAINER_APP_NAME>

Günlükçü düzeyi değişikliğinin geçerlilik kazanması iki dakika kadar sürebilir. İşlem tamamlandıktan sonra günlük akışlarından veya diğer günlük seçeneklerinden uygulama günlüklerini de kontrol edebilirsiniz.

Desteklenen Java günlük çerçeveleri

Aşağıdaki Java günlük çerçeveleri desteklenir:

Farklı günlük çerçeveleri tarafından desteklenen günlük düzeyleri

Farklı günlük çerçeveleri farklı günlük düzeylerini destekler. JVM tanılama platformunda bazı çerçeveler diğerlerinden daha iyi desteklenir. Günlük düzeylerini değiştirmeden önce, kullandığınız günlük düzeylerinin hem çerçeve hem de platform tarafından desteklendiğinden emin olun.

Çerçeve KAPALI ÖLÜMCÜL HATA UYARMAK INFO HATA AYIKLAMA TRACE TÜMÜ
Log4j2 Yes Evet Evet Evet Evet Evet Evet Yes
Geri Dönme Yes Hayı Evet Evet Evet Evet Evet Yes
jboss günlüğü Hayır Evet Evet Evet Evet Evet Evet Hayır
Platform Yes Hayı Evet Evet Evet Evet Evet Hayır

Günlük düzeylerinin genel görünürlüğü

Günlük Düzeyi ÖLÜMCÜL HATA UYARMAK INFO HATA AYIKLAMA TRACE TÜMÜ
KAPALI
ÖLÜMCÜL Yes
HATA Yes Yes
UYARMAK Yes Evet Yes
BİLGİ Yes Evet Evet Yes
HATA AYIKLAMA Yes Evet Evet Evet Yes
IZLEME Yes Evet Evet Evet Evet Yes
TÜMÜ Evet Evet Evet Evet Evet Evet Yes

Örneğin, günlük düzeyini olarak DEBUGayarlarsanız, uygulamanız günlükleri düzey FATAL, ERROR, WARN, ve DEBUG INFOile yazdırır ve VE ALLdüzeyiyle TRACE günlükleri YAZDıRMAZ.