共用方式為


使用 Azure SDK for Java 和 Logback 進行記錄

本文概述如何使用 Logback 將記錄新增至運用 Azure SDK for Java 的應用程式。 如 Azure SDK for Java中的設定記錄所述,所有 Azure 用戶端程式庫都透過 SLF4J記錄,因此您可以使用 Logback等記錄框架。

若要啟用 Logback 記錄,您必須執行兩件事:

  1. 將 Logback 函式庫納入為依賴項,
  2. /src/main/resources 項目目錄中建立名為 logback.xml 的檔案。

如需設定 Logback 的詳細資訊,請參閱 Logback 檔中 Logback 組態

新增 Maven 相依性

若要新增 Maven 相依性,請在專案的 pom.xml 檔案中包含下列 XML。 將 1.2.3 版本號碼替換為在 Logback Classic 模組頁面上顯示的最新發行版本號碼。

<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 組態。 若要這樣做,請將下列程式代碼行新增至 Spring /src/main/resources/application.properties 檔案,將 logging.config 屬性設定為指向 logback.xml 組態檔:

logging.config=classpath:logback.xml

後續步驟

本文涵蓋 Logback 的設定,以及如何讓適用於 Java 的 Azure SDK 用於記錄。 因為適用於 Java 的 Azure SDK 適用於所有 SLF4J 記錄架構,請考慮檢閱 SLF4J 使用者手動 以取得進一步的詳細數據。 如果您使用Logback,其網站上也有大量的設定指引。 如需詳細資訊,請參閱Logback文件中Logback組態

在掌握記錄日誌之後,請考慮檢視 Azure 提供的整合功能,這些功能適用於 SpringMicroProfile等軟體框架。