使用 Azure SDK for Java 和 log4j 记录日志
本文概述了如何使用 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 文件。 下面概述了这些方法。
使用属性文件
你可以在项目的 /src/main/resources 目录中放置名为 log4j2.properties 的平面属性文件。 此文件应采用以下格式:
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 的配置以及如何让 Azure Java SDK 通过它进行日志记录。 由于 Azure SDK for Java 适用于所有 SLF4J 日志记录框架,因此请考虑查看 SLF4J 用户手动 以了解更多详细信息。 如果使用 Log4j,其网站上也有大量的配置指南。 有关详细信息,请参阅 欢迎使用 Log4j 2!
掌握日志记录功能后,请考虑研究 Azure 提供的与 Spring 和 MicroProfile 等框架的集成。