Protokolovat 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 Konfigurace protokolování v sadě Azure SDK pro Javu, všechny klientské knihovny Azure logují prostřednictvím SLF4J, takže můžete používat logovací frameworky, jako je Logback.
Pokud chcete povolit protokolování pomocí Logbacku, 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 najdete v 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. Nahraďte číslo verze
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
Přidejte logback.xml do projektu
logback je jednou z oblíbených rozhraní protokolování. Pokud chcete povolit logování Logback, vytvořte soubor s názvem logback.xml v adresáři ./src/main/resources vašeho projektu. Tento soubor obsahuje konfigurace protokolování pro přizpůsobení vašich potřeb protokolování. Další informace o konfiguraci logback.xmlnaleznete v části Konfigurace Logback v dokumentaci k Logback.
Logování konzole
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
, kde se protokoluje pouze úroveň CHYBY a vyšší. Tento přístup můžete použít například v případě, že kód najdete v com.azure.core
příliš hlučný. Tento typ konfigurace může také fungovat obousměrně. Například pokud chcete získat více ladicích informací z tříd v com.azure.core
, můžete toto nastavení změnit na hodnotu 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, můžete ale stejně 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>
Záznam do souboru s povolenou rotací protokolu
Předchozí příklady jsou protokolovány do konzole, což není obvykle preferovaným místem pro protokoly. 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í. Springovou aplikaci je možné nakonfigurovat tak, aby četla konfigurace Logbacku z libovolného souboru. Provedete to tak, že nakonfigurujete vlastnost logging.config
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í Logbacku a jak přimět Azure SDK pro Javu ho používat pro logování. 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
Poté, co zvládnete protokolování, zvažte prozkoumání integrací, které Azure nabízí do frameworků, jako jsou Spring a MicroProfile.