
上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,会发现之前的日志不再显示了。