spring - 自由配置文件控制日志记录

标签 spring hibernate logging websphere websphere-liberty

我无法控制我在 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: The configured trace state included the following specifications that do not match any loggers currently registered in the server: org.hibernate*=off:org.springframework.*=off

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

有人遇到过吗? IBM 的 TRAS0040I 文档看起来很简单,但我似乎无法弄清楚为什么我的记录器没有在服务器上注册。

最佳答案

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

关于spring - 自由配置文件控制日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23094071/

相关文章:

java - Spring mvc静态资源配置问题

spring - 使用 Spring MVC 时无法让 Tomcat 提供一些静态文件

java - Play Framework 调用 Controller 导致打开文件过多错误

java - 用于 Java 的日志解析器

logging - 记录 HAProxy 自定义 header

go - 如何详细打印结构并隐藏一些字段?

java - Spring Shell - 命令提示符立即退出,不等待用户输入

Spring 4.0.0 向后兼容

java - 使用 PHP 脚本在 Java 中创建树结构

java - JPA @GenerateValue 与 PostgreSQL 生成的序列值中的差距