【问题标题】:org.apache.log4j not able to identify my log4j.properties fileorg.apache.log4j 无法识别我的 log4j.properties 文件
【发布时间】:2012-10-30 09:05:34
【问题描述】:

我第一次尝试使用 log4j(或就此而言,任何类型的日志库)。经过近 2 天的努力,我无法使其工作。

这是我正在使用的 log4j.properties 文件,但似乎记录器(从 junit 测试套件类中调用)根本不使用该文件。

private static final Logger logger = Logger.getLogger(myclass.class.getName());
...
logger.error("Message");
...

它只是在控制台输入消息(未创建文件),当我从 rootLogger 中删除附加程序 X 时,它仍然在控制台吐出消息。

此文件保存在 Eclipse 项目目录下名为“resources”的包下。我还有其他三个源包,我想从中使用这个配置文件,这就是为什么我为这个文件制作了一个单独的包。

是文件创建权限问题,还是参数大小写错误(给定java是强类型),还是这个文件的位置?

我们将不胜感激。

log4j.rootLogger=DEBUG, X, RUNLOG

log4j.appender.X=org.apache.log4j.ConsoleAppender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.ConversionPattern=%m%n

log4j.appender.RUNLOG=org.apache.log4j.FileAppender
log4j.appender.RUNLOG.file=run.log
log4j.appender.RUNLOG.threshold=INFO
log4j.appender.RUNLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.RUNLOG.layout.ConversionPattern=%m%n

【问题讨论】:

  • 您可以编辑您的帖子以在以-Dlog4j.debug 启动时显示程序的输出吗?

标签: java log4j


【解决方案1】:

默认情况下,Log4J 期望在“默认包”中找到它的配置文件:它只是查找名为 log4j.properties(以及后来的 log4j.xml,但这是另一回事)的资源,并期望在类路径。

您提到您的 Log4J 配置文件位于名为 resources 的包中,这正是它找不到它的原因。

您有以下选择:

  • 移动log4j.properties 文件,使其位于默认包中。
  • 在您的项目中创建一个文件夹(不是一个包),将您的 log4j.properties 文件放在那里并将该文件夹添加到您的运行时类路径中。
  • 指定 log4j.configuration 系统属性,并为其提供 Log4J 配置文件的路径。

【讨论】:

  • 谢谢大家,问题是我从其中一个镜像下载了一些 beta 包。它有异常大量的 jar 文件。正确的包位于 apache log4j 档案站点。我必须用 Logger 做更多的事情,希望现在一切顺利。
【解决方案2】:

我认为您的 resources 文件夹不在您的类路径中。尝试使用 Project->Properties->Java Build ->Libraries ->Add Class Folder 将文件夹添加到您的类路径中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多