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 artykule Konfigurowanie rejestrowania w zestawie Azure SDK dla języka Java, wszystkie biblioteki klienckie platformy Azure logują się za pośrednictwem protokołu 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 usługi Logback, zobacz Konfiguracja logback w dokumentacji usługi Logback.

Dodawanie zależności narzędzia 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 Moduł klasyczny logback.

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

Dodawanie pliku logback.xml do projektu

Logback jest jedną z popularnych struktur rejestrowania. 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 pliku logback.xml, zobacz Konfiguracja logback w dokumentacji usługi 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 pochodzi ze wszystkich com.azure.core spakowanych klas (w tym podpakietów). W ten sposób rejestrowane są wszystkie dane na poziomie INFO i wyższym, z wyjątkiem com.azure.coreparametrów , gdzie rejestrowane są tylko wartości na poziomie BŁĘDU i wyższe. Na przykład możesz użyć tego podejścia, jeśli znajdziesz kod w com.azure.core zbyt hałaśliwy. Ten rodzaj konfiguracji może również pójść w obie strony. Jeśli na przykład chcesz uzyskać więcej informacji debugowania z klas w com.azure.coreprogramie , możesz zmienić to ustawienie na DEBUGOWANIE.

Istnieje możliwość precyzyjnego kontrolowania rejestrowania określonych klas lub określonych pakietów. Jak pokazano w tym miejscu, com.azure.core steruje danymi wyjściowymi wszystkich klas podstawowych, ale równie można użyć com.azure.security.keyvault lub równoważnej kontroli danych wyjściowych odpowiednio dla okoliczności, które są najbardziej informacyjne w kontekście uruchomionej 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ą się do konsoli, która nie jest zwykle preferowaną lokalizacją dziennikó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

Struktura Spring działa przez odczytanie pliku Spring application.properties dla różnych konfiguracji, w tym konfiguracji rejestrowania. Można jednak skonfigurować aplikację Spring tak, aby odczytywała konfiguracje logback z dowolnego pliku. W tym celu skonfiguruj logging.config właściwość , 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 usługi Logback w dokumentacji usługi Logback.

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