Rejestrowanie przy użyciu zestawu Azure SDK dla języka Java i usługi Logback
Ten artykuł zawiera omówienie sposobu dodawania rejestrowania przy użyciu usługi Logback do aplikacji korzystających z zestawu Azure SDK dla języka Java. Jak wspomniano w Konfigurowanie rejestrowania w zestawie Azure SDK dla języka Java, wszystkie biblioteki klienckie platformy Azure logują się za pośrednictwem SLF4J, dzięki czemu można używać struktur rejestrowania, takich jak Logback.
Aby włączyć rejestrowanie Logback, należy wykonać dwie czynności:
- Dołącz bibliotekę logback jako zależność,
- Utwórz plik o nazwie logback.xml w katalogu projektu /src/main/ resources.
Aby uzyskać więcej informacji dotyczących konfigurowania Logback, zobacz Konfiguracja Logback w dokumentacji Logback.
Dodaj zależność Maven
Aby dodać zależność narzędzia Maven, dołącz następujący kod XML do pliku pom.xml projektu. Zastąp numer wersji 1.2.3
najnowszym numerem wersji widocznym na stronie Logback Classic Module.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
Dodaj logback.xml do projektu
Logback jest jednym z popularnych systemów logowania. Aby włączyć rejestrowanie Logback, utwórz plik o nazwie logback.xml w katalogu ./src/main/resources projektu. Ten plik zawiera konfiguracje rejestrowania w celu dostosowania potrzeb rejestrowania. Aby uzyskać więcej informacji na temat konfigurowania logback.xml, zobacz konfigurację Logback w dokumentacji Logback.
Rejestrowanie konsoli
Konfigurację logback można utworzyć, aby zalogować się do konsoli, jak pokazano w poniższym przykładzie. Ten przykład jest skonfigurowany do rejestrowania wszystkich zdarzeń rejestrowania, które są na poziomie INFO lub wyższym, niezależnie od tego, skąd pochodzą.
<?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>
Rejestrowanie błędów podstawowych platformy Azure
Poniższa przykładowa konfiguracja jest podobna do poprzedniej konfiguracji, ale obniża poziom rejestrowania pochodzący ze wszystkich com.azure.core
spakowanych klas (w tym podpakietów). W ten sposób rejestrowany jest poziom INFO i wyższe, z wyjątkiem com.azure.core
, gdzie rejestrowany jest tylko poziom ERROR i wyższe. Możesz na przykład użyć tego podejścia, jeśli znajdziesz kod w com.azure.core
zbyt hałaśliwy. Ten rodzaj konfiguracji może również działać w obie strony. Jeśli na przykład chcesz uzyskać więcej informacji o debugowaniu z klas w com.azure.core
, możesz zmienić to ustawienie na DEBUGOWANIE.
Istnieje możliwość precyzyjnego kontrolowania rejestrowania określonych klas lub określonych pakietów. Jak pokazano tutaj, com.azure.core
steruje danymi wyjściowymi wszystkich klas podstawowych, ale można również użyć com.azure.security.keyvault
lub odpowiednika, aby sterować danymi wyjściowymi odpowiednio do okoliczności, które są najbardziej informacyjne w kontekście działającej aplikacji.
<?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>
Zaloguj się do pliku z włączoną rotacją dziennika
Poprzednie przykłady logują do konsoli, która zazwyczaj nie jest preferowaną lokalizacją dla logów. Użyj następującej konfiguracji, aby zamiast tego zalogować się do pliku z funkcją przerzucania godzinowego i archiwizowania w formacie 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>
Aplikacje Spring
Framework Spring działa przez odczytanie pliku spring application.properties w celu wczytania różnych konfiguracji, w tym konfiguracji logowania. Można jednak skonfigurować aplikację Spring tak, aby odczytywała konfiguracje logback z dowolnego pliku. W tym celu skonfiguruj właściwość logging.config
, aby wskazywała plik konfiguracji logback.xml, dodając następujący wiersz do pliku Spring /src/main/resources/application.properties:
logging.config=classpath:logback.xml
Następne kroki
W tym artykule opisano konfigurację usługi Logback i sposób używania go do rejestrowania za pomocą zestawu Azure SDK dla języka Java. Ponieważ zestaw Azure SDK dla języka Java współpracuje ze wszystkimi strukturami rejestrowania SLF4J, rozważ przejrzenie podręcznika użytkownika
Po opanowaniu rejestrowania rozważ przyjrzenie się integracjom, które Azure oferuje w takich strukturach jak Spring i MicroProfile.