我无法控制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等)。 但是,traceSpecification级别适用于IBM类,并且我能够指定* = off,这有效地关闭了所有日志记录。
有没有人经历过这个? IBM的TRAS0040I文档似乎很简单,但我似乎无法弄清楚为什么我的记录器没有在服务器上注册。
答案 0 :(得分:0)
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和自己的配置