第 1 章 使用 Quarkus 配置日志记录


作为应用程序开发人员,您可以使用日志记录来查看和记录应用运行时发生的事件的消息。日志消息提供在开发和测试期间可用于调试应用程序的信息,并在生产环境中监控应用程序。

先决条件

1.1. JBoss LogManager 和支持的日志记录框架

Quarkus 使用 JBoss LogManager 日志记录后端来收集和管理日志数据。您可以使用 JBoss Logging 收集有关 Quarkus 内部事件的数据,以及应用程序中的事件。您可以在 application.properties 文件中配置日志行为。

除 JBoss Logging 外,JBoss LogManager 还支持几个第三方日志记录 API。JBoss LogManager 合并了所有支持的日志记录 API 的日志。

Quarkus 使用 JBoss Logging 处理其所有日志记录功能。当您使用依赖于不同日志记录 API 的库时,您需要将这个库从依赖项中排除,并将 JBoss Logging 配置为使用第三方 API 的日志记录适配器。

1.1.1. 添加 Apache Log4j 日志记录框架

Apache Log4j 是一个日志记录框架,其中包括日志记录后端和日志记录 API。由于 Quarkus 使用 JBoss LogManager 后端,您可以将 log4j2-jboss-logmanager 库添加到项目中,并使用 Log4j 作为日志记录 API。添加 Log4j 库会将 Log4j 日志路由到 JBoss Log Manager。您不需要包含任何 Log4j 依赖项。

流程

  • log4j2-jboss-logmanager 库作为依赖项添加到项目的 pom.xml 文件中:

    pom.xml 文件示例

        <dependency>
          <groupId>org.jboss.logmanager</groupId>
          <artifactId>log4j2-jboss-logmanager</artifactId>
        </dependency>
    Copy to Clipboard Toggle word wrap

    log4j2-jboss-logmanager 是 Log4J 版本 2 API 的库。如果要使用旧的 Log4J 版本 1 API,您必须改为添加 log4j-jboss-logmanager

1.1.2. 使用日志记录适配器

Quarkus 依赖于 JBoss Logging 库来满足所有日志记录要求。

当使用对其他日志记录库(如 Apache Commons Logging、Log4j 或 SLF4j)的库时,您必须从依赖项中排除这些日志记录库,并使用 JBoss Logging 提供的其中一个适配器。您不需要为作为 Quarkus 扩展依赖项的库添加适配器。

注意

第三方日志记录实现不包括在原生可执行文件中,您的应用程序可能无法编译,并显示类似如下的错误消息:

Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl
Copy to Clipboard Toggle word wrap

您可以通过为您使用的第三方日志记录实施配置 JBoss Logging 适配器来防止这个错误。

流程

  • 根据您使用的日志记录库,将其中一个适配器添加到 pom.xml 文件中:

    • Apache Commons Logging:

      pom.xml 文件示例

      <dependency>
          <groupId>org.jboss.logging</groupId>
          <artifactId>commons-logging-jboss-logging</artifactId>
      </dependency>
      Copy to Clipboard Toggle word wrap

    • Log4j:

      pom.xml 文件示例

      <dependency>
          <groupId>org.jboss.logmanager</groupId>
          <artifactId>log4j-jboss-logmanager</artifactId>
      </dependency>
      Copy to Clipboard Toggle word wrap

    • Log4j2:

      pom.xml 文件示例

      <dependency>
          <groupId>org.jboss.logmanager</groupId>
          <artifactId>log4j2-jboss-logmanager</artifactId>
      </dependency>
      Copy to Clipboard Toggle word wrap

    • SLF4j:

      pom.xml 文件示例

      <dependency>
          <groupId>org.jboss.slf4j</groupId>
          <artifactId>slf4j-jboss-logmanager</artifactId>
      </dependency>
      Copy to Clipboard Toggle word wrap

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部