Compartilhar via


Definir o nível do agente dinâmico para solucionar problemas de aplicativos Java nos Aplicativos de Contêiner do Azure (versão prévia)

A plataforma aplicativos de contêiner do Azure oferece uma ferramenta de diagnóstico interna exclusivamente para desenvolvedores Java para ajudá-los a depurar e solucionar problemas de seus aplicativos Java em execução nos Aplicativos de Contêiner do Azure com mais facilidade e eficiência. Um dos principais recursos é uma alteração dinâmica no nível do agente, que permite acessar detalhes de log ocultos por padrão. Quando habilitadas, as informações de log são coletadas sem modificações de código ou forçando você a reiniciar seu aplicativo ao alterar os níveis de log.

Antes de começar, você precisa verificar a extensão de Aplicativos de Contêiner do Azure na CLI do Azure:

az extension show --name containerapp

Se a extensão não estiver instalada, instale-a primeiro. Se a extensão aplicativos de contêiner do Azure estiver instalada, ela deverá ser a versão 0.3.51 ou mais recente.

az extension add -n containerapp

Observação

Esse recurso é compatível com aplicativos em execução no Java 8 ou versões mais recentes.

Habilitar o diagnóstico de JVM para seus aplicativos Java

Antes de usar a ferramenta de diagnóstico java, primeiro você precisa habilitar o diagnóstico de JVM (Máquina Virtual Java) para seus Aplicativos de Contêiner do Azure. Esta etapa habilita a funcionalidade de diagnóstico do Java injetando um agente de diagnóstico avançado em seu aplicativo. Seu aplicativo pode ser reiniciado durante esse processo.

Para aproveitar essas ferramentas de diagnóstico, você pode criar um novo aplicativo de contêiner com elas habilitadas ou atualizar um aplicativo de contêiner existente.

Para criar um novo aplicativo de contêiner com o diagnóstico JVM habilitado, use o seguinte comando:

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

Para atualizar um aplicativo de contêiner existente, use o seguinte comando:

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

Alterar os níveis do agente de runtime

Depois de habilitar o diagnóstico de JVM, você pode alterar os níveis de log de runtime para agentes específicos em seu aplicativo Java em execução sem a necessidade de reiniciar seu aplicativo.

O exemplo a seguir usa o nome do agente org.springframework.boot com o nível de log info. Altere esses valores para corresponder ao seu próprio nome e nível de agente.

Use o seguinte comando para ajustar os níveis de log para um agente específico:

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

Pode levar até dois minutos para que a alteração no nível do agente entre em vigor. Após a conclusão, você pode verificar os logs de aplicativos em log streams ou em outras opções de registro.

Estruturas de log do Java com suporte

Há suporte para as seguintes estruturas de log do Java:

Níveis de log com suporte por diferentes estruturas de log

Estruturas de log diferentes dão suporte a diferentes níveis de log. Na plataforma de diagnóstico JVM, algumas estruturas têm melhor suporte do que outras. Antes de alterar os níveis de log, verifique se a estrutura e a plataforma dão suporte aos níveis de log que você está usando.

Estrutura DESLIGADO FATAL ERRO AVISO INFORMAÇÃO DEPURAR RASTREAMENTO
Log4j2 Sim Sim Sim Sim Sim Sim Sim
Logback Sim Não Sim Sim Sim Sim Sim
jboss-logging Não Sim Sim Sim Sim Sim Sim
Plataforma Sim Não Sim Sim Sim Sim Sim

Visibilidade geral dos níveis de log

Nível de log FATAL ERRO AVISO INFORMAÇÃO DEPURAR RASTREAMENTO
DESLIGADO
FATAL Sim
DE ERRO Sim Sim
AVISO Sim Sim Sim
INFORMAÇÕES Sim Sim Sim Sim
DEPURAR Sim Sim Sim Sim Sim
trace Sim Sim Sim Sim Sim Sim

Por exemplo, se você definir o nível de log como INFO, seu aplicativo imprimirá logs com o nível FATAL, ERROR, WARN, INFO e NÃO imprimirá logs com nível DEBUG e TRACE.