使用適用于 JAVA 和 Log4j 的 Azure SDK 進行記錄
本文概述如何使用 Log4j 將記錄新增至使用 Azure SDK for JAVA 的應用程式。 如在 Azure SDK for JAVA 中設定記錄中所述 ,所有 Azure 用戶端程式庫都會透過 SLF4J 記錄,因此您可以使用 log4j 等 記錄架構。
本文提供使用 Log4J 2.x 版本的指引,但適用于 JAVA 的 Azure SDK 同樣支援 Log4J 1.x。 若要啟用 log4j 記錄,您必須執行兩件事:
- 將 log4j 程式庫納入為相依性,
- 在 /src/main/resources 專案目錄下 建立組態檔 ( log4j2.properties 或 log4j2.xml )。
如需設定 log4j 的詳細資訊,請參閱 歡迎使用 Log4j 2 。
新增 Maven 相依性
若要新增 Maven 相依性,請在專案的 pom.xml 檔案中包含下列 XML。 將 2.16.0 版本號碼取代為 Apache Log4j SLF4J 系結頁面上 顯示 的最新發行版本本號碼。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.16.0</version>
</dependency>
注意
由於已知的弱點 CVE-2021-44228 ,請務必使用 Log4j 2.16 版或更新版本
設定 Log4j
有兩種常見方式可以設定 Log4j:透過外部屬性檔案,或透過外部 XML 檔案。 以下概述這些方法。
使用屬性檔
您可以將名為 log4j2.properties 的一般屬性檔案放在 專案的 /src/main/resources 目錄中。 此檔案的格式應如下:
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d %5p [%t] %c{3} - %m%n
logger.app.name = com.azure.core
logger.app.level = ERROR
rootLogger.level = info
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
使用 XML 檔案
您可以將名為 log4j2.xml 的 XML 檔案放在 專案的 /src/main/resources 目錄中。 此檔案的格式應如下:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %5p [%t] %c{3} - %m%n" />
</Console>
</Appenders>
<Loggers>
<Logger name="com.azure.core" level="error" additivity="true">
<appender-ref ref="console" />
</Logger>
<Root level="info" additivity="false">
<appender-ref ref="console" />
</Root>
</Loggers>
</Configuration>
下一步
本文涵蓋 Log4j 的設定,以及如何讓適用于 JAVA 的 Azure SDK 用於記錄。 因為適用于 JAVA 的 Azure SDK 適用于所有 SLF4J 記錄架構,請考慮檢閱 SLF4J 使用者手冊 以取得進一步的詳細資料。 如果您使用 Log4j,其網站上也有大量的設定指引。 如需詳細資訊,請參閱 歡迎使用 Log4j 2!
掌握記錄之後,請考慮查看 Azure 提供給 Spring 和 MicroProfile 等 架構的整合。