Partilhar via


Definir o nível do registrador dinâmico para solucionar problemas de aplicativos Java em Aplicativos de Contêiner do Azure (visualização)

A plataforma de Aplicativos de Contêiner do Azure oferece uma ferramenta de diagnóstico interna exclusiva 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 de nível do registrador dinâmico, que permite acessar detalhes de log que estão ocultos por padrão. Quando habilitado, 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 atualizar a extensão de Aplicativos de Contêiner do Azure em sua CLI do Azure para a versão 0.3.51 ou mais recente.

az extension update --name containerapp

Nota

Este recurso é compatível com aplicativos executados em Java 8 ou versões mais recentes.

Habilitar o diagnóstico da JVM para seus aplicativos Java

Antes de usar a ferramenta de diagnóstico Java, você precisa primeiro habilitar o diagnóstico da Java Virtual Machine (JVM) para seus Aplicativos de Contêiner do Azure. Esta etapa habilita a funcionalidade de diagnóstico 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 da 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 registrador de tempo de execução

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

O exemplo a seguir usa o nome org.springframework.boot do registrador com o nível infode log. Certifique-se de alterar esses valores para corresponder ao seu próprio nome e nível do registrador.

Use o seguinte comando para ajustar os níveis de log para um registrador 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 do nível do registrador entre em vigor. Depois de concluído, você pode verificar os logs do aplicativo a partir de fluxos de log ou outras opções de log.

Estruturas de log Java suportadas

As seguintes estruturas de log Java são suportadas:

Níveis de log suportados por diferentes estruturas de log

Diferentes estruturas de log suportam diferentes níveis de log. Na plataforma de diagnóstico da JVM, algumas estruturas são mais bem suportadas do que outras. Antes de alterar os níveis de log, verifique se a estrutura e a plataforma oferecem suporte aos níveis de log que você está usando.

Estrutura OFF FATAL ERRO ADVERTIR INFORMAÇÃO DEPURAR TRACE
Log4j2 Sim Sim Sim Sim Sim Sim Sim
Registo Sim No Sim Sim Sim Sim Sim
jboss-logging Não Sim Sim Sim Sim Sim Sim
Plataforma Sim No Sim Sim Sim Sim Sim

Visibilidade geral dos níveis de log

Nível do registo FATAL ERRO ADVERTIR INFORMAÇÃO DEPURAR TRACE
DESLIGADO
FATAL Sim
ERRO Sim Sim
ADVERTIR Sim Sim Sim
INFORMAÇÃO Sim Sim Sim Sim
DEPURAR Sim Sim Sim Sim Sim
RASTREIO 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, INFOe NÃO imprimirá logs com nível DEBUG e TRACE.