【发布时间】:2012-02-28 13:15:57
【问题描述】:
我在 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,只留下文件名 - 在战争中包括和排除
log4j(范围provided) - 将
slf4j1.5.10 版与log4j1.2.8 版(来自weblogic)和1.2.12 一起使用 - 将单独的 log4j.xml 放入
mydomain/conf目录
但是,它们都没有使日志消息出现在任何地方。甚至info 消息也不会显示在主日志中,但是它是为info 消息设置的,并且在以前的 weblogic 上它们也显示在主日志中。
更糟糕的是,即使System.out 调用到null 并且无处显示。
所以,目前,我不知道出了什么问题,因为甚至没有关于日志配置的错误消息。有人可以帮忙吗?
我已经更新了一点。
我已经成功为 weblogic 设置了 log4j.debug=true 选项,并且我有公报:log4j:WARN No appenders could be found for logger
但是 log4j.xml 文件是存在于WEB-INF/classes 中。我还把它添加到WEB-INF。它现在并且一直在 Windows 下工作。所以我不知道是什么导致了在 Linux 下找到这个文件的问题。
更新 2 在 WebLogic 9.2 的 Linux 版本下工作。问题是特定于实例的。但是我仍然不知道为了达到这种错误效果可以搞砸什么。在 Web 控制台的配置中,我没有发现任何可疑之处。
【问题讨论】:
-
两件事值得尝试,以防万一:1-只是为了测试,将
<container-descriptor><prefer-web-inf-classes>true</prefer-web-inf-classes></container-descriptor>添加到您的weblogic.xml描述符。 2-尝试关注此link。 -
我已将此容器描述添加到我的 weblogic-application.xml 中(我只有他),但出现验证错误...
-
不幸的是,此元素仅在 weblogic.xml 文件中有效。如果你想尝试,你可以在你有 weblogic-application.xml 文件的地方创建一个 weblogic.xml 文件。
-
我已经更新了问题,在我的本地 weblogic 9.2 上它正在工作,但在远程 linux weblogic 上仍然无法工作。但是部署在那里的其他应用程序记录正常,只有我的没有,没有人知道为什么。