3

我无法控制 Websphere Liberty Profile 服务器中代码的日志记录级别。我已将服务器上的 server.xml 配置为不记录 hibernate 和 spring,因为我的日志将被这两个框架的活动淹没。我通常使用 log4j 来执行此操作,它在独立的 WAS 中运行良好。

<logging consoleLogLevel="INFO" copySystemStreams="true" traceFormat="ENHANCED" traceSpecification="org.springframework.*=off:com.ibm.ws.*=off:org.hibernate*=off"/>

在 Liberty 中,这不起作用。当 liberty 更新配置时(当我保存 server.xml 和更改时),我得到以下日志:

[INFO ] TRAS0040I:配置的跟踪状态包括与当前在服务器中注册的任何记录器都不匹配的以下规范:org.hibernate*=off:org.springframework.*=off

基本上这条消息适用于我的任何代码和任何第三方代码(Spring、Hibernate 等)。但是,对于 IBM 类,traceSpecification 级别可以正常工作,并且我可以指定 *=off,这有效地关闭了所有日志记录。

有没有人经历过这个?IBM 的 TRAS0040I 文档似乎很简单,但我似乎无法弄清楚为什么我的记录器没有在服务器上注册。

4

1 回答 1

1

Liberty 对日志记录没有丰富的控制。您应该了解“记录”和“跟踪”之间的区别。检查 console.log、messages.log、trace.log 文件开头的描述:http: //www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/ rwlp_logging.html

您在“traceSpecification”中的配置 - 实际上什么都不做,因为 spring 和 hibernate 是来自 JVM 的日志,它们不会去跟踪,所以跟踪配置不会影响它们。

您可以为 jvm 日志自由配置的所有内容是 consoleLogLevel(INFO、AUDIT、WARNING、ERROR 和 OFF)

如果您想为 Liberty 中的特定组件配置日志级别 - 您应该使用例如 log4j 和自己的配置

于 2016-12-08T09:33:01.700 回答