Quarkus实战:专为Kubernetes而优化的Java解决方案
上QQ阅读APP看书,第一时间看更新

4.6 添加应用程序日志

问题

如何在应用程序中添加日志?

解决方案

大多数情况下,你的应用程序需要编写程序自身的日志信息,而不是仅仅依靠Quarkus提供的默认日志。Quarkus应用程序可以使用任何一种支持的API进行日志记录,这些日志将被合并。

Quarkus支持以下日志库:

·JDK java.util.logging

·JBoss logging

·SLF4J

·Apache Commons Logging

我们来看看如何使用JBoss Logging来记录日志。打开org.acme.quickstart.GreetingResource.java,设置当/hello/log被调用时,打印一条日志信息:

❶创建logger实例

❷子路径设置为/log

❸打印一条info级别的日志

现在启动应用程序:

在一个新的终端窗口中,请求/hello/log:

如果你检查启动Quarkus的终端窗口,会看到下面的日志:

讨论

日志记录是以每个类别为基础进行的,适用于一个类别的配置也适用于该类别的所有子类别,除非有更具体的匹配的子类别配置。

类别由类的位置(即定义它们的包或子包)来表示,例如,如果要将Undertow安全日志设置为trace级别,则需要在application.properties中设置quarkus.log.category."io.undertow.request.security".level=TRACE属性。

按照前面的例子,让我们限制org.acme.quickstart中的类(和子类)的日志打印级别,设置最小日志级别为WARNING:

❶设置类别时必须使用双引号

如果你再次发请求到http://localhost:8080/hello/log,会发现之前的日志不再显示了。