Registrare utilizzando Azure SDK per Java e Logback

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

Per abilitare la registrazione logback, completare due passaggi:

  1. Includa 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 di pom.xml del progetto. Sostituire il numero di versione 1.2.3 con il numero di versione più recente rilasciato, visualizzato nella pagina del 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 logging 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 di Logback nella documentazione di Logback.

Log della 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 INFO livello 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 per tutte le com.azure.core classi in pacchetto (inclusi i sottopacchetto). In questo modo, tutti gli elementi a livello di INFO e superiore vengono registrati, ad eccezione di com.azure.core, dove viene registrato solo il livello DI ERRORE e superiore. Ad esempio, è possibile usare questo approccio se si trova il codice in 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 controllare la registrazione di classi specifiche o pacchetti specifici. Come illustrato di seguito, com.azure.core controlla l'output di tutte le classi di base, ma è anche possibile usare com.azure.security.keyvault o equivalente 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 invece, con rotazione oraria 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 spring application.properties file per varie configurazioni, inclusa la configurazione di registrazione. È possibile configurare l'applicazione Spring per leggere le configurazioni di logback da qualsiasi file. A tale scopo, configurare la proprietà logging.config 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 ulteriori informazioni, consultare la configurazione di Logback nella documentazione di Logback.

Dopo aver padroneggiato il logging, prendi in considerazione le integrazioni che Azure offre per framework come Spring.