Compartir vía


Registro con Azure SDK para Java y Logback

En este artículo se proporciona información general sobre cómo agregar el registro mediante Logback a las aplicaciones que usan el SDK de Azure para Java. Como se mencionó en Configurar el registro en el Azure SDK para Java, todas las bibliotecas cliente de Azure registran a través de SLF4J, por lo que puede usar frameworks de registro como Logback.

Para habilitar el registro de Logback, debe hacer dos cosas:

  1. Incluir la biblioteca de Logback como una dependencia,
  2. Cree un archivo denominado logback.xml en el directorio del proyecto /src/main/ resources.

Para obtener más información sobre la configuración de Logback, consulte la sección Configuración de Logback en la documentación de Logback.

Añade la dependencia de Maven

Para agregar la dependencia de Maven, incluya el siguiente XML en el archivo pom.xml del proyecto. Reemplace el número de versión 1.2.3 por el número de versión más reciente que se muestra en la página de módulo clásico de Logback.

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>

Agregar logback.xml al proyecto

Logback es uno de los frameworks de registro más populares. Para habilitar el registro de Logback, cree un archivo denominado logback.xml en el directorio ./src/main/resources de su proyecto. Este archivo contiene las configuraciones de registro para personalizar las necesidades de registro. Para obtener más información sobre la configuración de logback.xml, consulte el capítulo acerca de la configuración de Logback en la documentación de Logback.

Registro de consolas

Puede crear una configuración de Logback para iniciar sesión en la consola, como se muestra en el ejemplo siguiente. Este ejemplo está configurado para registrar todos los eventos de registro que son de nivel info o superior, dondequiera que procedan.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>
        %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %blue(%logger{100}): %msg%n%throwable
      </Pattern>
    </layout>
  </appender>

  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

Registro de errores principales de Azure

La siguiente configuración de ejemplo es similar a la configuración anterior, pero reduce el nivel en el que el registro procede de todas las clases empaquetadas com.azure.core (incluidos los subpaquetes). De este modo, se registran todos los eventos de nivel INFO y superior, excepto en com.azure.core, donde solo se registran los eventos de nivel ERROR y superiores. Por ejemplo, puede usar este enfoque si encuentra el código en com.azure.core demasiado ruidoso. Este tipo de configuración también puede ir de ambas maneras. Por ejemplo, si desea obtener más información de depuración de las clases de com.azure.core, puede cambiar este valor a DEBUG.

Es posible aplicar un control detallado sobre el registro de clases específicas o paquetes específicos. Como se muestra aquí, com.azure.core controla la salida de todas las clases principales, pero también puede usar com.azure.security.keyvault o equivalente para controlar la salida según corresponda para las circunstancias más informativas en el contexto de la aplicación en ejecución.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%message%n</pattern>
    </encoder>
  </appender>

  <logger name="com.azure.core" level="ERROR" />

  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

Registro en un archivo con la rotación de registro habilitada

En los ejemplos anteriores se registra en la consola, que normalmente no es la ubicación preferida para los registros. Utilice la siguiente configuración para registrar en un archivo, con sustitución cada hora y archivado en formato gzip:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <property name="LOGS" value="./logs" />
  <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOGS}/spring-boot-logger.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- rollover hourly and gzip logs -->
      <fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd-HH}.log.gz</fileNamePattern>
    </rollingPolicy>
  </appender>

  <!-- LOG everything at INFO level -->
  <root level="INFO">
    <appender-ref ref="RollingFile" />
  </root>
</configuration>

Aplicaciones Spring

La plataforma Spring lee en el archivo application.properties de Spring diversas configuraciones, incluida la configuración de registro. Sin embargo, es posible configurar la aplicación Spring para leer las configuraciones de Logback desde cualquier archivo. Para ello, configure la propiedad logging.config para que apunte al archivo de configuración de logback.xml mediante la adición de la siguiente línea a spring /src/main/resources/application.properties archivo:

logging.config=classpath:logback.xml

Pasos siguientes

En este artículo se ha tratado la configuración de Logback y cómo hacer que el SDK de Azure para Java lo use para el registro. Dado que el SDK de Azure para Java funciona con todos los marcos de registro de SLF4J, considere la posibilidad de revisar los manuales de instrucción de SLF4J para obtener más detalles. Si usa Logback, también hay una gran cantidad de instrucciones de configuración en su sitio web. Para obtener más información, consulte el capítulo sobre configuración de Logback en la documentación de Logback.

Después de dominar el registro, considere la posibilidad de examinar las integraciones que Azure ofrece en marcos como Spring y MicroProfile.