Accedere con Azure SDK per Java e Logback

Questo articolo offre una panoramica di come aggiungere la registrazione usando Logback alle applicazioni che usano Azure SDK per Java. Come indicato in Configurare la registrazione in Azure SDK per Java, tutte le librerie client di Azure accedono tramite SLF4J, quindi è possibile usare framework di registrazione come Logback.

Per abilitare la registrazione logback, è necessario eseguire due operazioni:

  1. Includere la libreria logback come dipendenza,
  2. Creare un file denominato logback.xml nella directory del progetto /src/main/resources .

Per altre informazioni sulla configurazione di Logback, vedere Configurazione del logback nella documentazione di Logback.

Aggiungere la dipendenza Maven

Per aggiungere la dipendenza Maven, includere il codice XML seguente nel file pom.xml del progetto. Sostituire il numero di versione 1.2.3 con il numero di versione rilasciato più recente visualizzato nella pagina Modulo classico di Logback.

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

Aggiungere logback.xml al progetto

Logback è uno dei framework di registrazione più diffusi. Per abilitare la registrazione logback, creare un file denominato logback.xml nella directory ./src/main/resources del progetto. Questo file contiene le configurazioni di registrazione per personalizzare le esigenze di registrazione. Per altre informazioni sulla configurazione di logback.xml, vedere Configurazione del logback nella documentazione di Logback.

Registrazione console

È possibile creare una configurazione di Logback per accedere alla console, come illustrato nell'esempio seguente. Questo esempio è configurato per registrare tutti gli eventi di registrazione di livello INFO o superiore, ovunque provengano.

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

Registrare gli errori principali di Azure

La configurazione di esempio seguente è simile alla configurazione precedente, ma riduce il livello in base al quale la registrazione proviene da tutte le com.azure.core classi in pacchetto (inclusi i sottopacchetto). In questo modo, viene registrato tutto il livello INFO e superiore, ad eccezione di com.azure.core, in cui viene registrato solo il livello DI ERRORE e superiore. Ad esempio, è possibile usare questo approccio se il codice è com.azure.core troppo rumoroso. Questo tipo di configurazione può anche andare in entrambi i modi. Ad esempio, se si desidera ottenere altre informazioni di debug dalle classi in com.azure.core, è possibile modificare questa impostazione su DEBUG.

È possibile avere un controllo con granularità fine sulla registrazione di classi specifiche o pacchetti specifici. Come illustrato di seguito, com.azure.core controlla l'output di tutte le classi di base, ma è possibile usare com.azure.security.keyvault o equivalenti per controllare l'output in base alle circostanze più informative nel contesto dell'applicazione in esecuzione.

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

Accedere a un file con rotazione log abilitata

Gli esempi precedenti accedono alla console, che in genere non è il percorso preferito per i log. Usare la configurazione seguente per accedere a un file, con rollover orario e archiviazione in 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>

Applicazioni Spring

Spring Framework funziona leggendo il file Spring application.properties per varie configurazioni, inclusa la configurazione di registrazione. È tuttavia possibile configurare l'applicazione Spring per leggere le configurazioni di logback da qualsiasi file. A tale scopo, configurare la logging.config proprietà in modo che punti al file di configurazione logback.xml aggiungendo la riga seguente nel file Spring /src/main/resources/application.properties :

logging.config=classpath:logback.xml

Passaggi successivi

Questo articolo ha illustrato la configurazione di Logback e come usare Azure SDK per Java per la registrazione. Poiché Azure SDK per Java funziona con tutti i framework di registrazione SLF4J, è consigliabile esaminare il manuale dell'utente SLF4J per altri dettagli. Se si usa Logback, nel sito Web è disponibile anche una vasta gamma di indicazioni sulla configurazione. Per altre informazioni, vedere Configurazione del logback nella documentazione di Logback.

Dopo aver eseguito la registrazione, è consigliabile esaminare le integrazioni offerte da Azure in framework come Spring e MicroProfile.