【问题标题】:Missing logs - log4j.xml configuration seems to be ignored - Weblogic 9.2缺少日志 - log4j.xml 配置似乎被忽略 - Weblogic 9.2
【发布时间】:2012-02-28 13:15:57
【问题描述】:

我在 WebLogic 9.2 上运行 EAR 中打包的 WAR。我的功能是使用 slf4j 使用 log4j.xml 配置进行日志记录。 log4j.xml 在war 项目的resources 目录下,所以它落在WEB-INF/classes 目录下。

在 Windows 下的 WebLogic 8Weblogic 9.2 下一切正常,但是在 Linux 下的 WebLogic 9.2 只是忽略文件并且没有日志文件已创建。

我已经测试了以下修改:

  1. 将目录名从File 参数删除到RollingFileAppender,只留下文件名
  2. 在战争中包括和排除log4j(范围provided
  3. slf4j 1.5.10 版与log4j 1.2.8 版(来自weblogic)和1.2.12 一起使用
  4. 将单独的 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 下找到这个文件的问题。


更新 2WebLogic 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 上仍然无法工作。但是部署在那里的其他应用程序记录正常,只有我的没有,没有人知道为什么。

标签: java log4j weblogic slf4j


【解决方案1】:

我发现这个环境选项非常宝贵:-Dlog4j.debug=true 它向您展示了 log4j 如何初始化以及它在哪里查找其配置文件。

【讨论】:

  • 如果你还没有尝试过上面的建议,你绝对应该
  • 那你怎么能解决它呢?请记住在下次有部署/发布槽时添加此选项,并养成使用 log4j 时始终添加此选项的习惯。
  • 如何使用 weblogic 控制台为特定部署设置此选项?我以为只能在weblogic启动脚本中设置
  • 很抱歉我没有使用 Weblogic 的经验,但是我认为你必须能够定义环境变量
  • 这不是解决方案的答案
【解决方案2】:

好吧,在与 weblogic 大师交谈后,我找到了几百万页的 weblogic 文档,我找到了解决方案:

从不weblogic 下使用 log4j

并且,根据该格言,我已切换到 logback

它正在工作!太紧张了,解决方案就这么简单......但是,我们在 jBoss 下使用 slf4j 启动 logback 失败,所以它是特定于服务器的:( p>

【讨论】:

  • "永远不要在 weblogic 下使用 log4j!"我认为这是不正确/不公平的说法。它可以在 WebLogic 上很好地工作。我们在一些应用程序中就是这样做的。
  • 这只是忽略问题并使用另一个框架。
猜你喜欢
  • 2013-09-12
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 2016-09-30
  • 2012-03-11
相关资源
最近更新 更多