Sdílet prostřednictvím


Nastavení úrovně dynamického protokolovacího nástroje pro řešení potíží s aplikacemi Java v Azure Container Apps (Preview)

Platforma Azure Container Apps nabízí integrovaný diagnostický nástroj výhradně pro vývojáře v Javě, který jim pomůže ladit a řešit potíže s aplikacemi v Javě spuštěnými v Azure Container Apps snadněji a efektivněji. Jednou z klíčových funkcí je změna na úrovni dynamického protokolovacího nástroje, která umožňuje přístup k podrobnostem protokolu, které jsou ve výchozím nastavení skryté. Pokud je tato možnost povolená, shromažďují se informace protokolu bez úprav kódu nebo vynucení restartování aplikace při změně úrovní protokolu.

Než začnete, musíte v Azure CLI upgradovat rozšíření Azure Container Apps na verzi 0.3.51 nebo novější.

az extension update --name containerapp

Povolení diagnostiky prostředí JVM pro aplikace v Javě

Před použitím diagnostického nástroje v Javě musíte nejprve povolit diagnostiku prostředí Java Virtual Machine (JVM) pro vaše aplikace Azure Container Apps. Tento krok umožňuje diagnostiku Javy vložením pokročilého diagnostického agenta do vaší aplikace. Během tohoto procesu se může vaše aplikace restartovat.

Pokud chcete využít výhod těchto diagnostických nástrojů, můžete vytvořit novou aplikaci kontejneru s povolenými nebo aktualizovat existující aplikaci kontejneru.

Pokud chcete vytvořit novou aplikaci kontejneru s povolenou diagnostikou JVM, použijte následující příkaz:

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

Pokud chcete aktualizovat existující aplikaci kontejneru, použijte následující příkaz:

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

Změna úrovní protokolovacího modulu runtime

Po povolení diagnostiky prostředí JVM můžete změnit úrovně protokolů modulu runtime pro konkrétní protokolovací nástroje ve spuštěné aplikaci Java, aniž byste museli aplikaci restartovat.

Následující ukázka používá název org.springframework.boot protokolovacího nástroje s úrovní infoprotokolu . Nezapomeňte tyto hodnoty změnit tak, aby odpovídaly vašemu vlastnímu názvu a úrovni protokolovacího nástroje.

K úpravě úrovní protokolu pro konkrétní protokolovací nástroj použijte následující příkaz:

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

Může trvat až dvě minuty, než se změna na úrovni protokolovacího nástroje projeví. Po dokončení můžete zkontrolovat protokoly aplikace z datových proudů protokolů nebo jiných možností protokolu.

Podporované architektury protokolování v Javě

Podporují se následující architektury protokolování Java:

Podporované úrovně protokolů podle různých rozhraní protokolování

Různé protokolovací architektury podporují různé úrovně protokolů. V diagnostické platformě prostředí JVM se některé architektury podporují lépe než jiné. Před změnou úrovní protokolování se ujistěte, že rozhraní i platforma podporují úrovně protokolů, které používáte.

Framework OFF FATÁLNÍ CHYBA VAROVAT INFO LADIT TRACE ALL
Log4j2 Ano Ano Ano Ano Ano Ano Ano Yes
Zpětný protokol Yes Ne Ano Ano Ano Ano Ano Yes
jboss-logging No Ano Ano Ano Ano Ano Ano No
Platforma Yes Ne Ano Ano Ano Ano Ano No

Obecná viditelnost úrovní protokolu

Úroveň protokolu FATÁLNÍ CHYBA VAROVAT INFO LADIT TRACE ALL
VYPNUTO
FATÁLNÍ Ano
CHYBA Ano Yes
VAROVAT Ano Ano Yes
INFO Ano Ano Ano Yes
LADĚNÍ Ano Ano Ano Ano Yes
TRASOVÁNÍ Ano Ano Ano Ano Ano Yes
ALL Ano Ano Ano Ano Ano Ano Yes

Pokud například nastavíte úroveň DEBUGprotokolu na , aplikace vytiskne protokoly s úrovní FATAL, ERROR, WARN, INFODEBUG a nebude tisknout protokoly s úrovní TRACE AND ALL.