Share via


Logga med Azure SDK för Java och Logback

Den här artikeln innehåller en översikt över hur du lägger till loggning med Logback i program som använder Azure SDK för Java. Som du nämnde i Konfigurera loggning i Azure SDK för Java loggar alla Azure-klientbibliotek via SLF4J, så att du kan använda loggningsramverk som Logback.

För att aktivera Loggningsloggning måste du göra två saker:

  1. Inkludera Logback-biblioteket som ett beroende,
  2. Skapa en fil med namnet logback.xml i projektkatalogen /src/main/resources .

Mer information om hur du konfigurerar Logback finns i Logback-konfiguration i Logback-dokumentationen.

Lägg till Maven-beroendet

Om du vill lägga till Maven-beroendet inkluderar du följande XML i projektets pom.xml-fil . Ersätt versionsnumret 1.2.3 med det senaste versionsnumret som visas på sidan Klassisk Logback-modul.

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

Lägga till logback.xml i projektet

Loggning är ett av de populära loggningsramverken. Om du vill aktivera Loggningsloggning skapar du en fil med namnet logback.xml i katalogen ./src/main/resources i projektet. Den här filen innehåller loggningskonfigurationerna för att anpassa dina loggningsbehov. Mer information om hur du konfigurerar logback.xml finns i Logback-konfiguration i Logback-dokumentationen.

Konsolloggning

Du kan skapa en Logback-konfiguration för att logga in på konsolen enligt följande exempel. Det här exemplet är konfigurerat för att logga alla loggningshändelser som är på INFO-nivå eller högre, oavsett var de kommer ifrån.

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

Logga Azure Core-fel

Följande exempelkonfiguration liknar den tidigare konfigurationen, men den sänker den nivå där loggning kommer från alla com.azure.core paketerade klasser (inklusive underpaket). På så sätt loggas allt på INFO-nivå och högre, förutom com.azure.core, där endast FELnivå och högre loggas. Du kan till exempel använda den här metoden om du tycker att koden är com.azure.core för bullrig. Den här typen av konfiguration kan också gå åt båda hållen. Om du till exempel vill få mer felsökningsinformation från klasser i com.azure.corekan du ändra den här inställningen till FELSÖK.

Det är möjligt att ha detaljerad kontroll över loggning av specifika klasser eller specifika paket. Som du ser här com.azure.core styr du utdata för alla kärnklasser, men du kan också använda com.azure.security.keyvault eller motsvarande för att kontrollera utdata efter behov för de omständigheter som är mest informativa i kontexten för det program som körs.

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

Logga till en fil med loggrotation aktiverad

Föregående exempel loggar till konsolen, som normalt inte är den önskade platsen för loggar. Använd följande konfiguration för att logga in på en fil i stället, med överföring varje timme och arkivering i gzip-format:

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

Spring-program

Spring-ramverket fungerar genom att läsa spring application.properties-filen för olika konfigurationer, inklusive loggningskonfigurationen. Det är dock möjligt att konfigurera Spring-programmet så att det läser Logback-konfigurationer från valfri fil. Det gör du genom att konfigurera logging.config egenskapen så att den pekar på konfigurationsfilen logback.xml genom att lägga till följande rad i filen Spring /src/main/resources/application.properties :

logging.config=classpath:logback.xml

Nästa steg

Den här artikeln beskriver konfigurationen av Logback och hur du gör så att Azure SDK för Java använder det för loggning. Eftersom Azure SDK för Java fungerar med alla SLF4J-loggningsramverk kan du läsa användarhandboken för SLF4J för mer information. Om du använder Logback finns det också en stor mängd konfigurationsvägledning på webbplatsen. Mer information finns i Logback-konfigurationen i Logback-dokumentationen.

När du har bemästrat loggning kan du överväga att titta på de integreringar som Azure erbjuder i ramverk som Spring och MicroProfile.