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 funkcji Logback do aplikacji korzystających z Azure SDK na potrzeby 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ć logowanie za pomocą Logback, wykonaj dwa kroki:

  1. Dołącz bibliotekę Logback jako zależność.
  2. Utwórz plik o nazwie logback.xml w katalogu projektu /src/main/resources .

Aby uzyskać więcej informacji na temat konfigurowania usługi Logback, zobacz Konfiguracja logback w dokumentacji usługi 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ń dziennika na poziomie INFO lub wyższym, niezależnie od ich źródła.

<?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 dla wszystkich com.azure.core spakowanych klas (w tym podpakietów). W ten sposób rejestrowane są wszystkie komunikaty na poziomie INFO i wyższym, z wyjątkiem com.azure.core, gdzie rejestrowane są tylko komunikaty na poziomie ERROR i wyższym. 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.

Można kontrolować rejestrowanie określonych klas lub 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. Aplikację Spring można skonfigurować 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 SLF4J, aby uzyskać więcej szczegółów. Jeśli używasz usługi Logback, istnieje również ogromna ilość wskazówek dotyczących konfiguracji w jej witrynie internetowej. Aby uzyskać więcej informacji, zobacz konfiguracja Logback w dokumentacji Logback.

Gdy opanujesz rejestrowanie, rozważ zapoznanie się z integracjami, które Azure oferuje dla frameworków takich jak Spring.