使用 Azure SDK for Java 和 log4j 记录日志

本文介绍如何为使用 Java Azure SDK的应用程序配置 Log4j。 如在 Java Azure SDK中配置日志记录中所述,所有Azure客户端库都通过 SLF4J 进行日志,因此可以使用 Log4j 2 等框架来简化故障排除。

本文提供了使用 Log4J 2.x 版本的指南,但 Java Azure SDK也支持 Log4J 1.x。 若要启用 log4j 日志记录,请完成以下两个步骤:

  1. 将 log4j 库作为依赖项包含在内。
  2. /src/main/resources 项目目录下创建配置文件(log4j2.propertieslog4j2.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 的配置以及如何让 Azure Java SDK 通过它进行日志记录。 由于 Azure SDK for Java 适用于所有 SLF4J 日志记录框架,因此请考虑查看 SLF4J 用户手动 以了解更多详细信息。 如果使用 Log4j,其网站上还有大量配置指南。 有关详细信息,请参阅 欢迎使用 Log4j 2!

掌握日志记录后,不妨进一步了解 Azure 为 Spring 等框架提供的集成。