我正在 WebLogic 9.2 上运行 EAR 中打包的 WAR。我的功能是使用 slf4j 使用 log4j.xml 配置进行日志记录。 log4j.xml位于war
项目的resources
目录中,因此它位于WEB-INF/classes
目录中。
Windows 下的 WebLogic 8 和 Weblogic 9.2 一切正常,但是 Linux 下的 WebLogic 9.2 只是忽略该文件并且没有日志文件已创建。
我测试了以下修改:
- 将目录名称从
File
参数中删除到RollingFileAppender
,仅保留文件名 - 在 war 中包括和排除
log4j
(范围提供
) - 将
slf4j
版本 1.5.10 与log4j
版本 1.2.8(来自 weblogic)和 1.2.12 一起使用 - 将单独的 log4j.xml 放入
mydomain/conf
目录
但是,它们都没有使日志消息出现在任何地方。即使 info
消息也不会显示在主日志中,但它是为 info
消息设置的,并且在以前的 weblogic 上它们也会显示在主日志中。
更糟糕的是,即使 System.out
调用也会转到 null
并且不会显示在任何地方。
所以,目前我不知道出了什么问题,因为甚至没有关于日志配置的错误消息。有人可以帮忙吗?
我更新了一些。
我已经成功为 weblogic 设置了 log4j.debug=true 选项,并且收到了公报:log4j:WARN No Appender can be find for logger
但是 log4j.xml 文件存在于 WEB-INF/classes
中。我另外将其添加到WEB-INF
中。它现在和过去都在 Windows 下运行。所以我不知道是什么原因导致在Linux下找到这个文件的问题。
更新2 日志记录在 WebLogic 9.2 的 Linux 版本下工作。该问题是特定于实例的。但我仍然不知道要搞砸什么才能达到这样的错误效果。在网络控制台的配置中,我没有看到任何可疑的东西。
最佳答案
我发现这个环境选项非常宝贵:-Dlog4j.debug=true 它向您展示了 log4j 如何初始化以及它在何处查找其配置文件。
关于java - 丢失日志 - log4j.xml 配置似乎被忽略 - Weblogic 9.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482600/