使用適用于 JAVA 和 Logback 的 Azure SDK 進行記錄
本文提供如何使用 Logback 將記錄新增至使用 Azure SDK for JAVA 的應用程式的概觀。 如在適用于 JAVA 的 Azure SDK 中設定記錄中所述 ,所有 Azure 用戶端程式庫都會透過 SLF4J 記錄,因此您可以使用記錄架構,例如 Logback 。
若要啟用 Logback 記錄,您必須執行兩件事:
- 將 Logback 程式庫納入為相依性,
- 在 /src/main/resources 專案目錄中建立名為 logback.xml 的 檔案。
如需設定 Logback 的詳細資訊,請參閱 Logback 檔中的 Logback 組態 。
新增 Maven 相依性
若要新增 Maven 相依性,請在專案的 pom.xml 檔案中包含下列 XML。 將 1.2.3 版本號碼取代為 Logback 傳統模組頁面上 顯示 的最新發行版本本號碼。
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
將 logback.xml 新增至您的專案
Logback 是其中一個熱門的記錄架構。 若要啟用 Logback 記錄,請在專案的 ./src/main/resources 目錄中建立名為 logback.xml 的檔案。 此檔案包含自訂記錄需求的記錄組態。 如需設定 logback.xml 的詳細資訊,請參閱 Logback 檔中的 Logback 組態 。
主控台記錄
您可以建立 Logback 組態來登入主控台,如下列範例所示。 此範例已設定為記錄 INFO 層級或更高層級的所有記錄事件,無論事件來自何處。
<?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>
記錄 Azure 核心錯誤
下列範例組態類似于先前的組態,但它會降低記錄來自所有 com.azure.core
封裝類別的層級(包括子套件)。 如此一來,INFO 層級和更高層級的所有專案都會記錄,但 除了 com.azure.core
之外,只會記錄 ERROR 層級和更高層級。 例如,如果您在 太吵雜中 com.azure.core
尋找程式碼,則可以使用此方法。 這種設定也可以雙向。 例如,如果您想要從 中的 com.azure.core
類別取得更多偵錯資訊,您可以將此設定變更為 DEBUG。
可以更精細地控制特定類別或特定套件的記錄。 如這裡所示, com.azure.core
控制所有核心類別的輸出,但您可以同樣使用 com.azure.security.keyvault
或對等方式控制輸出,以符合執行中應用程式內容中最具資訊性的情況。
<?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>
登入已啟用記錄輪替的檔案
上述範例會記錄到主控台,這通常不是記錄的慣用位置。 請改用下列組態來登入檔案,並以 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>
Spring 應用程式
Spring 架構的運作方式是讀取 Spring application.properties 檔案以取得各種組態,包括記錄組態。 不過,您可以設定 Spring 應用程式,從任何檔案讀取 Logback 組態。 若要這樣做, logging.config
請將下列這一行新增至 Spring /src/main/resources/application.properties 檔案,將 屬性設定為指向 logback.xml 組態檔:
logging.config=classpath:logback.xml
下一步
本文涵蓋 Logback 的設定,以及如何讓適用于 JAVA 的 Azure SDK 用於記錄。 因為適用于 JAVA 的 Azure SDK 適用于所有 SLF4J 記錄架構,請考慮檢閱 SLF4J 使用者手冊 以取得進一步的詳細資料。 如果您使用 Logback,其網站上也有大量的設定指引。 如需詳細資訊,請參閱 Logback 檔中的 Logback 組態 。
掌握記錄之後,請考慮查看 Azure 提供給 Spring 和 MicroProfile 等 架構的整合。