Share via


Fazer logon com o SDK do Azure para Java e Logback

Este artigo fornece uma visão geral de como adicionar log usando Logback a aplicativos que usam o SDK do Azure para Java. Conforme mencionado em Configurar o log no SDK do Azure para Java, todas as bibliotecas de cliente do Azure registram em log por meio do SLF4J, para que você possa usar estruturas de log, como Logback.

Para habilitar o log de Logback, você deve fazer duas coisas:

  1. Incluir a biblioteca Logback como uma dependência,
  2. Crie um arquivo chamado logback.xml no diretório do projeto /src/main/resources .

Para obter mais informações relacionadas à configuração do Logback, consulte Configuração do Logback na documentação do Logback.

Adicionar a dependência do Maven

Para adicionar a dependência Maven, inclua o seguinte XML no arquivo pom.xml do projeto. Substitua o número da versão 1.2.3 pelo número da versão lançada mais recente mostrado na página Logback Classic Module.

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

Adicionar logback.xml ao seu projeto

Logback é uma das estruturas de log populares. Para habilitar o log de Logback, crie um arquivo chamado logback.xml no diretório ./src/main/resources do seu projeto. Esse arquivo contém as configurações de log para personalizar suas necessidades de registro. Para obter mais informações sobre como configurar o logback.xml, consulte Configuração do logback na documentação do Logback.

Registo da consola

Você pode criar uma configuração de Logback para fazer logon no console, conforme mostrado no exemplo a seguir. Este exemplo é configurado para registrar todos os eventos de log de nível INFO ou superior, de onde quer que venham.

<?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>

Registrar erros principais do Azure

O exemplo de configuração a seguir é semelhante à configuração anterior, mas reduz o nível no qual o log vem de todas as com.azure.core classes empacotadas (incluindo subpacotes). Desta forma, tudo o nível de INFORMAÇÃO e superior é registado, exceto o com.azure.core, onde apenas o nível de ERRO e superior é registado. Por exemplo, você pode usar essa abordagem se achar o código muito com.azure.core barulhento. Este tipo de configuração também pode ir nos dois sentidos. Por exemplo, se você quiser obter mais informações de depuração de classes no com.azure.core, você pode alterar essa configuração para DEBUG.

É possível ter um controle refinado sobre o registro de classes específicas ou pacotes específicos. Como mostrado aqui, controla a saída de todas as classes principais, com.azure.core mas você pode igualmente usar com.azure.security.keyvault ou equivalente para controlar a saída conforme apropriado para as circunstâncias que são mais informativas no contexto do aplicativo em execução.

<?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>

Registrar em um arquivo com a rotação de log habilitada

Os exemplos anteriores registram no console, que normalmente não é o local preferido para logs. Em vez disso, use a seguinte configuração para fazer logon em um arquivo, com roll-over por hora e arquivamento no 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>

Aplicações de mola

A estrutura do Spring funciona lendo o arquivo application.properties do Spring para várias configurações, incluindo a configuração de log. No entanto, é possível configurar o aplicativo Spring para ler as configurações de Logback de qualquer arquivo. Para fazer isso, configure a propriedade para apontar para o arquivo de configuração .xml logback adicionando a logging.config seguinte linha ao arquivo Spring /src/main/resources/application.properties:

logging.config=classpath:logback.xml

Próximos passos

Este artigo abordou a configuração do Logback e como fazer com que o SDK do Azure para Java o use para registro. Como o SDK do Azure para Java funciona com todas as estruturas de log SLF4J, considere revisar o manual do usuário SLF4J para obter mais detalhes. Se você usa o Logback, também há uma grande quantidade de orientações de configuração em seu site. Para obter mais informações, consulte Configuração do Logback na documentação do Logback.

Depois de dominar o log, considere examinar as integrações que o Azure oferece em estruturas como Spring e MicroProfile.