1.2. 获取应用程序日志记录器


要获取红帽构建的 Quarkus 中的应用程序日志记录器,请选择以下方法之一:

1.2.1. 声明 logger 字段

使用这个经典方法,您可以使用特定的 API 获取日志记录器实例,将其存储在类的静态字段中,并在此实例上调用日志操作。

相同的流可以与任何 支持的日志记录 API 应用。

使用 JBoss Logging API 将日志记录器实例存储在静态字段中的示例:

package com.example;

import org.jboss.logging.Logger;

public class MyService {
    private static final Logger log = Logger.getLogger(MyService.class); 
1


    public void doSomething() {
        log.info("It works!"); 
2

    }
}
Copy to Clipboard Toggle word wrap

1
定义 logger 字段。
2
日志对象 调用所需的日志记录方法。

1.2.2. 简化的日志记录

Quarkus 简化了日志记录功能,方法是将日志记录器字段添加到使用 io.quarkus.logging.Log 的类中。这消除了重复样板代码的需求,并增强了日志记录设置便利。

使用静态方法调用简化日志的示例:

package com.example;

import io.quarkus.logging.Log; 
1


class MyService { 
2

    public void doSomething() {
        Log.info("Simple!"); 
3

    }
}
Copy to Clipboard Toggle word wrap

1
io.quarkus.logging.Log 类包含与 JBoss Logging 相同的方法,但它们 是静态的
2
请注意,该类不会声明 logger 字段。这是因为在应用程序构建过程中,在使用 Log API 的每个类中会自动创建 私有静态最终 org.jboss.logging.Logger 字段。调用 Log 方法的类的完全限定名称用作日志记录器名称。在本例中,日志记录器名称为 com.example.MyService
3
最后,所有对 Log 方法的调用都会被重写为应用构建过程中对 logger 字段的常规 JBoss Logging 调用。
警告

仅在应用程序类中使用 Log API,而不是在外部依赖项中使用。 构建时未被 Quarkus 处理的日志方法调用会抛出异常。

1.2.3. 注入配置的日志记录器

使用 @Inject 注释配置的 org.jboss.logging.Logger 日志记录器实例的注入是添加应用程序日志记录器的替代选择,但仅适用于 CDI Bean。

您可以使用 @Inject Logger 日志,其中日志记录器以您注入的类命名,或使用 @Inject @LoggerName ("…​") Logger 日志,其中日志记录器将接收指定的名称。注入后,您可以使用 log 对象来调用日志记录方法。

两种不同类型的日志记录器注入示例:

package com.example;

import org.jboss.logging.Logger;

@ApplicationScoped
class SimpleBean {

   @Inject
   Logger log; 
1


   @LoggerName("foo")
   Logger fooLog; 
2


   public void ping() {
     log.info("Simple!");
     fooLog.info("Goes to _foo_ logger!");
   }
}
Copy to Clipboard Toggle word wrap

1
声明类的完全限定类名称(FQCN)用作日志记录器名称,例如 org.jboss.logging.Logger.getLogger.getLogger (SimpleBean.class)
2
在本例中,名称 foo 用作日志记录器名称,例如 org.jboss.logging.Logger.getLogger ("foo")
注意

日志记录器实例在内部缓存。因此,当将日志记录器注入 @RequestScoped bean 时,它对所有 bean 实例共享,以避免与日志记录器实例化关联的性能损失。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat