使用 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 日志记录,必须执行以下两项操作:

  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 文件。 下面概述了这些方法。

使用属性文件

你可以在项目的 /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 提供的与 SpringMicroProfile 等框架的集成。