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 vi nämnde i Konfigurera loggning i Azure SDK för Javaloggar alla Azure-klientbibliotek via SLF4J-, så att du kan använda loggningsramverk som Logback.
För att aktivera Logback-loggning måste du göra två saker:
- Inkludera Logback-biblioteket som ett beroende,
- 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 för 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
Logback är ett av de populära loggningsramverken. För att aktivera Logback-loggning, skapa en fil med namnet logback.xml i katalogen ./src/main/resources i ditt projekt. Den här filen innehåller loggningskonfigurationerna för att anpassa dina loggningsbehov. Mer information om hur du konfigurerar logback.xmlfinns i Logback-konfiguration i Logback-dokumentationen.
Loggning till konsol
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 i 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.core
kan 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 kontrollerar com.azure.core
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>
Våransökningar
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 egenskapen logging.config
så att den pekar på logback.xml-konfigurationsfilen genom att lägga till följande rad i Spring /src/main/resources/application.properties-filen:
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-konfiguration 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.