Compartir vía


Establecimiento del nivel de registrador dinámico para solucionar problemas de aplicaciones Java en Azure Container Apps (versión preliminar)

La plataforma Azure Container Apps ofrece una herramienta de diagnóstico integrada exclusivamente para los desarrolladores de Java para ayudarles a depurar y solucionar problemas de sus aplicaciones Java que se ejecutan en Azure Container Apps de forma más fácil y eficaz. Una de las características clave es un cambio de nivel de registrador dinámico, que permite acceder a los detalles del registro ocultos de manera predeterminada. Cuando está habilitada, la información de registro se recopila sin modificaciones de código ni le obliga a reiniciar la aplicación al cambiar los niveles de registro.

Antes de empezar, debe actualizar la extensión de Azure Container Apps en la CLI de Azure a la versión 0.3.51 u otra más reciente.

az extension update --name containerapp

Nota:

Esta característica es compatible con aplicaciones que se ejecutan en Java 8 o versiones más recientes.

Habilitación de diagnósticos de JVM para las aplicaciones Java

Antes de usar la herramienta de diagnóstico de Java, primero debe habilitar los diagnósticos de máquina virtual Java (JVM) para Azure Container Apps. Este paso habilita la funcionalidad de diagnóstico de Java insertando un agente de diagnóstico avanzado en la aplicación. Es posible que la aplicación se reinicie durante este proceso.

Para aprovechar estas herramientas de diagnóstico, puede crear una nueva aplicación de contenedor con ellas habilitada o actualizar una aplicación de contenedor existente.

Para crear una nueva aplicación de contenedor con diagnósticos de JVM habilitado, use el siguiente comando:

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

Para actualizar una aplicación de contenedor existente, use el siguiente comando:

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

Cambio de los niveles del registrador en tiempo de ejecución

Después de habilitar el diagnóstico de JVM, puede cambiar los niveles de registro en tiempo de ejecución para registradores específicos en la aplicación Java en ejecución sin necesidad de reiniciar la aplicación.

En el ejemplo siguiente se usa el nombre del registrador org.springframework.boot con el nivel de registro info. Asegúrese de cambiar estos valores para que coincidan con su propio nombre y nivel del registrador.

Use el siguiente comando para ajustar los niveles de registro de un registrador específico:

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

El cambio de nivel del registrador puede tardar hasta dos minutos en surtir efecto. Una vez completado, puede comprobar los registros de la aplicación desde secuencias de registro u otras opciones de registro.

Marcos de registro de Java admitidos

Se admiten los siguientes marcos de registro de Java:

Niveles de registro admitidos por diferentes marcos de registro

Los distintos marcos de registro admiten diferentes niveles de registro. En la plataforma de diagnóstico de JVM, algunos marcos son mejor compatibles que otros. Antes de cambiar los niveles de registro, asegúrese de que el marco y la plataforma admiten los niveles de registro que está usando.

marco Apagado FATAL ERROR WARN INFO DEBUG TRACE
Log4j2
Logback No
jboss-logging No
Plataforma No

Visibilidad general de los niveles de registro

Nivel de registro FATAL ERROR WARN INFO DEBUG TRACE
OFF
FATAL
ERROR
WARN
INFO
DEBUG
TRACE

Por ejemplo, si establece el nivel de registro en INFO, la aplicación imprime registros con el nivel FATAL, ERROR, WARN, INFOy NO imprime registros con el nivel DEBUG y TRACE.