Partager via


Journalisation avec le SDK Azure pour Java et Logback

Cet article fournit une vue d’ensemble de l’ajout de la journalisation à l’aide de Logback à des applications qui utilisent le kit de développement logiciel (SDK) Azure pour Java. Comme indiqué dans Configurer la journalisation dans le SDK Azure pour Java, toutes les bibliothèques clientes Azure se connectent via SLF4J, de sorte que vous pouvez utiliser des frameworks de journalisation tels que Logback.

Pour activer la journalisation Logback, vous devez effectuer deux opérations :

  1. Inclure la bibliothèque Logback comme dépendance
  2. Créez un fichier appelé logback.xml dans le répertoire du projet /src/main/resources.

Pour plus d’informations sur la configuration de Logback, consultez Configuration de Logback dans la documentation de Logback.

Ajouter la dépendance Maven

Pour ajouter la dépendance Maven, ajoutez le code XML suivant dans le fichier pom.xml du projet. Remplacez le numéro de version du 1.2.3 par le numéro de la dernière version figurant sur la page du module Logback Classic.

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

Ajouter logback.xml à votre projet

Logback est l’un des frameworks de journalisation le plus populaires. Pour configurer la journalisation Logback, créez un fichier logback.xml dans le répertoire ./src/main/resources de votre projet. Ce fichier contient les configurations de journalisation pour personnaliser vos besoins de journalisation. Pour plus d’informations sur la configuration de logback.xml, consultez Configuration de Logback dans la documentation de Logback.

Écriture dans le journal de la console

Vous pouvez créer une configuration Logback pour vous connecter à la console, comme illustré dans l’exemple suivant. Cet exemple est configuré pour journaliser tous les événements de connexion qui sont au niveau INFO ou supérieur, peu importe d’où ils proviennent.

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

Consigner les erreurs Azure principales

L’exemple de configuration suivant est similaire à la configuration précédente, mais il réduit le niveau auquel la journalisation provient de toutes les com.azure.core classes empaquetées (y compris les sous-packages). De cette façon, tout ce qui est au niveau INFO et supérieur est journalisé, à l’exception de com.azure.core, où seul le niveau ERROR et supérieur sont enregistrés. Par exemple, vous pouvez utiliser cette approche si vous trouvez le code dans com.azure.core trop bruyant. Ce type de configuration peut également se faire de deux manières. Par exemple, si vous souhaitez obtenir davantage d’informations de débogage des classes dans com.azure.core, vous pouvez remplacer ce paramètre par DEBUG.

Il est possible de disposer d’un contrôle fin sur la journalisation de certaines classes ou de certains packages. Comme indiqué ici, com.azure.core contrôle la sortie de toutes les classes principales, mais vous pouvez également utiliser com.azure.security.keyvault ou équivaut à contrôler la sortie selon les circonstances les plus informatives dans le contexte de l’application en cours d’exécution.

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

Consigner dans un fichier avec rotation des journaux activée

Les exemples précédents se connectent à la console, ce qui n’est normalement pas l’emplacement préféré des journaux. Utilisez la configuration suivante pour effectuer la journalisation dans un fichier, avec restauration toutes les heures et archivage au format 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>

Applications Spring

Le framework Spring lit le fichier application.properties de Spring pour y retrouver différentes configurations, y compris la configuration de la journalisation. Il est aussi possible de configurer l’application Spring pour qu’elle lise les configurations Logback à partir de n’importe quel fichier. Pour cela, configurez la propriété logging.config de manière à ce qu’elle pointe vers le fichier de configuration logback. xml en ajoutant la ligne suivante à votre fichier Spring /src/main/resources/application.properties :

logging.config=classpath:logback.xml

Étapes suivantes

Cet article a abordé la configuration de Logback et comment faire en sorte que le SDK Azure pour Java l’utilise pour la journalisation. Étant donné que le kit de développement logiciel Azure pour Java fonctionne avec tous les frameworks de journalisation SLF4J, consultez le manuel de l’utilisateur SLF4J pour plus d’informations. Si vous utilisez Logback, vous disposez également d’une grande quantité de conseils de configuration sur son site web. Pour plus d’informations, consultez Configuration de Logback dans la documentation de Logback.

Une fois que vous maîtrisez la journalisation, intéressez-vous aux intégrations offertes par Azure dans les frameworks tels que Spring et MicroProfile.