Partilhar 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 registo no SDK do Azure para Java, todas as bibliotecas de cliente do Azure efetuam registo através do SLF4J, para que possa usar frameworks de registo, como o Logback.

Para ativar o log de Logback, deves fazer duas coisas:

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

Para mais informações relacionadas com a configuração do Logback, consulte Configuração 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 mais recente lançada, conforme apresentado na página do módulo Logback Classic.

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

Adicionar logback.xml ao seu projeto

Logback é um dos frameworks de registo 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 logback.xml, consulte a configuração de 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 de registo de todas as classes do pacote com.azure.core (incluindo subpacotes). Desta forma, tudo o nível de INFORMAÇÃO e superior é registado, exceto com.azure.core, onde apenas o nível de ERRO e superior é registado. Por exemplo, você pode usar essa abordagem se achar que o código em com.azure.core muito barulhento. Este tipo de configuração também pode ir nos dois sentidos. Por exemplo, se tu quiseres obter mais informações de depuração sobre as classes no com.azure.core, podes 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, com.azure.core controla a saída de todas as classes principais, mas você também pode 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 ativada

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 primavera

A estrutura do Spring funciona lendo o arquivo de 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 logback.xml adicionando a seguinte linha ao seu arquivo de /src/main/resources/application.properties do Spring :

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 a seção de configuração do Logback, indicada por , na documentação do Logback.

Depois de ter compreendido completamente o registo, considere explorar as integrações que o Azure oferece em frameworks como Spring e MicroProfile.