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:
- Incluir a biblioteca Logback como uma dependência,
- 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
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
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
Depois de ter compreendido completamente o registo, considere explorar as integrações que o Azure oferece em frameworks como Spring e MicroProfile.