Udostępnij za pośrednictwem


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:

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

Po opanowaniu rejestrowania rozważ przyjrzenie się integracjom, które Azure oferuje w takich strukturach jak Spring i MicroProfile.