【问题标题】:Log4j logs configurationLog4j 日志配置
【发布时间】:2014-09-15 12:34:26
【问题描述】:

我通过将 log4j.properties 文件放入 src/main/webapp/WEB-INF/classes 文件夹中成功配置了 log4j 配置。应用程序的日志工作正常,但我的 JUnit 测试用例日志记录不起作用。

在互联网上搜索,发现我必须将我的 log4j.properties 文件放在 src/test/resources 中,以便记录我的 JUnit 测试用例。这样做了,JUnit 测试用例的日志记录也开始工作了。

之后在我的服务器中部署了我的应用程序,log4j 现在正在从 src/test/resources 读取 log4j.properties 文件,而不是从 WEB-INF/classes 目录中读取一个(JUnit log4j.properties 文件为日志记录,并且日志正在写入该日志文件中)。

应用程序(maven 项目而不是 war 文件)正在部署在我的 eclipse 内的 weblogic 服务器中。

请告诉我如何解决这个 log4j 配置问题,以便我的服务器使用正确的 log4j 配置文件。

log4j 导入:

import org.apache.log4j.Logger;

记录器实例化:

private static Logger logger = Logger.getLogger(TestClass.class);

【问题讨论】:

  • 如果 maven 配置正常,一切正常。 Maven 通常会关心您的构建并在您想要的任何地方正确部署构建。你把它放在正确的方向,因为它看起来。那么问题出在哪里?
  • @Rubinum:maven 和这个有什么关系?我没有使用 Maven 进行部署。
  • 啊你不使用maven。比我更抱歉^^。
  • Maven 是一个构建管理软件,maven 只允许创建你使用maven war:war 部署的war-file!

标签: java logging log4j


【解决方案1】:

这可能是您的 IDE 环境的问题。我认为您的 IDE 将测试包标记为源目录,并且当您的 IDE 部署 Web 应用程序时,weblogic 会将您的测试包放在类路径中。

Log4j 在类路径上寻找配置,因此它可能首先看到 test/log4j.properties。

我的 2 条建议:

  1. 尝试将 test/src 标记为未导出到 weblogic(或从部署中排除 - 这是特定于 IDE)
  2. 通过在 weblogic 启动配置中设置 -Dlog4j.configuration=path/to/log4j.properties 来强制 log4j 配置文件

【讨论】:

  • 这确实是问题所在。 src/test/resources 在我的项目中被标记为源文件夹。我通过从我的项目源中删除 src/test/resources 文件夹来解决它。感谢您的建议。
猜你喜欢
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 2011-07-24
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
相关资源
最近更新 更多