Protokolování pomocí sady Azure SDK pro Javu a logbacku
Tento článek obsahuje přehled o tom, jak přidat protokolování pomocí zpětného protokolování do aplikací, které používají sadu Azure SDK pro Javu. Jak je uvedeno v tématu Konfigurace protokolování v sadě Azure SDK pro Javu, všechny klientské knihovny Azure se protokolují prostřednictvím SLF4J, takže můžete použít protokolovací architektury, jako je například zpětný protokol.
Pokud chcete povolit protokolování zpětného protokolování protokolu, musíte udělat dvě věci:
- Zahrnout knihovnu logback jako závislost
- V adresáři projektu /src/main/resources vytvořte soubor s názvem logback.xml.
Další informace týkající se konfigurace zpětného protokolu naleznete v části Konfigurace zpětného protokolu v dokumentaci ke zpětnému protokolu.
Přidání závislosti Mavenu
Pokud chcete přidat závislost Mavenu, přidejte do souboru pom.xml projektu následující kód XML. Číslo verze 1.2.3 nahraďte nejnovějším vydaným číslem verze, které se zobrazí na stránce modulu Classic pro zpětný protokol.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
Přidání logback.xml do projektu
Zpětný protokol je jednou z oblíbených rozhraní protokolování. Pokud chcete povolit protokolování zpětného protokolování protokolu, vytvořte soubor s názvem logback.xml v adresáři ./src/main/resources projektu. Tento soubor obsahuje konfigurace protokolování pro přizpůsobení vašich potřeb protokolování. Další informace o konfiguraci logback.xml naleznete v konfiguraci zpětného protokolu v dokumentaci ke zpětnému protokolu.
Protokolování konzoly
Můžete vytvořit konfiguraci zpětného přihlašování pro přihlášení ke konzole, jak je znázorněno v následujícím příkladu. Tento příklad je nakonfigurovaný tak, aby protokoloval všechny události protokolování, které jsou úrovně INFO nebo vyšší, ať už pocházejí kdekoli.
<?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>
Protokolování chyb jádra Azure
Následující příklad konfigurace je podobná předchozí konfiguraci, ale snižuje úroveň, na které protokolování pochází ze všech com.azure.core
zabalených tříd (včetně dílčích balíčků). Tímto způsobem se protokoluje vše na úrovni INFO a vyšší s výjimkou com.azure.core
případů, kdy se protokoluje pouze úroveň ERROR a vyšší. Tento přístup můžete použít například v případě, že kód najdete příliš com.azure.core
hlučně. Tento druh konfigurace může také jít oběma způsoby. Pokud například chcete získat více informací o ladění z tříd, com.azure.core
můžete toto nastavení změnit na DEBUG.
Je možné mít jemně odstupňovanou kontrolu nad protokolováním konkrétních tříd nebo konkrétních balíčků. Jak je znázorněno zde, com.azure.core
řídí výstup všech základních tříd, ale stejně můžete použít com.azure.security.keyvault
nebo ekvivalentní k řízení výstupu podle okolností, které jsou nejinformativnější v kontextu spuštěné aplikace.
<?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>
Přihlášení k souboru s povolenou obměnou protokolem
Předchozí příklady se protokoluje do konzoly, což obvykle není upřednostňovaným umístěním protokolů. Pomocí následující konfigurace se místo toho přihlaste k souboru s hodinovým vrácením a archivací ve formátu 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>
Aplikace Spring
Architektura Spring funguje čtením souboru Spring application.properties pro různé konfigurace, včetně konfigurace protokolování. Aplikaci Spring je však možné nakonfigurovat tak, aby četla konfigurace zpětného zápisu protokolu z libovolného souboru. Provedete to tak, že nakonfigurujete logging.config
vlastnost tak, aby odkazovat na konfigurační soubor logback.xml přidáním následujícího řádku do souboru Spring /src/main/resources/application.properties :
logging.config=classpath:logback.xml
Další kroky
Tento článek se zabývá konfigurací zpětného protokolování a sadou Azure SDK pro Javu. Vzhledem k tomu, že sada Azure SDK pro Javu funguje se všemi architekturami protokolování SLF4J, zvažte další podrobnosti v uživatelské příručce SLF4J. Pokud používáte logback, existuje na jeho webu také obrovské množství pokynů ke konfiguraci. Další informace naleznete v části Konfigurace zpětného protokolu v dokumentaci ke zpětnému protokolu.
Po zprotokolování zvažte možnost podívat se na integrace, které Azure nabízí do architektur, jako jsou Spring a MicroProfile.