使用 Azure SDK for Java 和 java.util.logging 进行日志记录

本文概述如何使用 java.util.logging 向使用 Azure SDK for Java 的应用程序添加日志记录。 java.util.logging 框架是 JDK 的一部分。 如在 Azure SDK for Java 中配置日志记录中所述,所有 Azure 客户端库都通过 SLF4J 进行日志记录,因此可以使用诸如 java.util.logging 之类的记录框架。

若要启用 java.util.logging,必须执行以下两项操作:

  1. 添加用于 java.util.logging 的 SLF4J 适配器作为依赖项,
  2. 在 /src/main/resources 项目目录下创建一个名为 logging.properties 的文件

有关配置记录器的详细信息,请参阅 Oracle 文档中的 Configuring Logging Output(配置日志记录输出)。

添加 Maven 依赖项

若要添加 Maven 依赖项,请在项目的 pom.xml 文件中包含以下 XML。 将 1.7.30 版本号替换为 SLF4J JDK14 绑定页上显示的最新发布版本号

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>1.7.30</version> <!-- replace this version with the latest available version on Maven central -->
</dependency>

将 logging.properties 添加到项目

若要登录java.util.logging,请在项目的 ./src/main/resources 目录或其他地方创建名为 logging.properties 的文件。 此文件将包含用于自定义日志记录需求的日志记录配置。 通过设置 java.util.logging.config.file 系统属性提供文件的路径。 在创建记录器实例之前,必须设置此属性。 有关详细信息,请参阅 Java 日志记录:配置

控制台日志记录

你可以创建配置以记录到控制台,如以下示例中所示。 此示例配置为记录所有信息级别或更高级别的日志记录事件,无论它们来自何处。

handlers = java.util.logging.ConsoleHandler
.level = INFO

java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=[%1$tF %1$tH:%1$tM:%1$tS.%1$tL] [%4$s] %3$s %5$s %n

记录到文件

上述示例将日志记录到控制台,这通常不是日志的首选位置。 若要配置为记录到文件,请使用以下配置:

handlers = java.util.logging.FileHandler
.level = INFO

java.util.logging.FileHandler.pattern = %h/myapplication.log
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.level = INFO

此代码将在主目录 (%h) 中创建一个名为 myapplication.log 的文件。 此记录器不支持在一段时间后自动轮换文件。 如果需要此功能,则需要编写计划程序来管理日志文件的轮换。

后续步骤

本文介绍了 java.util.logging 的配置,以及如何使 Azure SDK for Java 使用它来进行日志记录。 由于 Azure SDK for Java 适用于所有 SLF4J 记录框架,因此请考虑查看 SLF4J user manual(SLF4J 用户手册)了解更多详细信息。

掌握日志记录后,请考虑查看 Azure 提供到 SpringMicroProfile 等框架中的集成。