第 2 章 为应用程序启用 JBoss Logging
当您想使用 JBoss Logging 来收集应用程序日志时,您必须向您要生成日志的每个类添加一个日志记录器。以下流程演示了如何以编程方式使用 API 方法或声明性地将日志记录添加到应用程序中。
流程
根据您的应用程序代码,使用以下方法之一:
创建一个
org.jboss.logging.Logger实例,并通过为每个类调用静态方法Logger.getLogger(Class)初始化它:src/main/java/org/acme/ExampleResource.java
import org.jboss.logging.Logger;1 import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/hello") public class ExampleResource { private static final Logger LOG = Logger.getLogger(ExampleResource.class);2 @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { LOG.info("Hello");3 return "hello"; } }在您的 Bean 和资源类中注入已配置的
org.jboss.logging.Logger实例:src/main/java/org/acme/ExampleResource.java
import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.jboss.logging.Logger;1 import io.quarkus.arc.log.LoggerName; @Path("/hello") public class ExampleResource { @Inject Logger log;2 @LoggerName("foo") Logger fooLog;3 @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { log.info("Simple!"); fooLog.info("Goes to foo logger!"); return "hello"; } }注意日志记录器实例在内部缓存。您注入到 Bean 的日志记录器,为所有 Bean 实例共享,以避免与日志记录器实例化相关的可能性能。
(可选)在
应用程序.properties文件中配置日志输出:src/main/resources/application.properties
<configuration_key>=<value>例如,您可以创建一个日志文件并将输出输出到控制台以及文件:
src/main/resources/application.properties
quarkus.log.file.enable=true quarkus.log.file.path=/tmp/trace.log以开发模式运行应用程序:
./mvnw quarkus:dev-
导航到
http://localhost:8080/hello。 根据您的配置,查看终端或日志文件中的日志消息。
ExampleResource.class输出示例,日志记录级别设置为INFO:2021-05-21 15:38:39,751 INFO [io.quarkus] (Quarkus Main Thread) my-project my-version on JVM (powered by Quarkus 1.13.3.Final) started in 1.189s. Listening on: http://localhost:8080 2021-05-21 15:38:39,765 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. 2021-05-21 15:38:39,766 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy] 2021-05-21 15:38:58,790 INFO [ExampleResource] (executor-thread-1) Hello