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 info
gü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:
- Log4j2 (yalnızca sürüm 2.*)
- Geri Dönme
- jboss günlüğü
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 DEBUG
ayarlarsanız, uygulamanız günlükleri düzey FATAL
, ERROR
, WARN
, ve DEBUG
INFO
ile yazdırır ve VE ALL
düzeyiyle TRACE
günlükleri YAZDıRMAZ.