org.apache.log4j无法识别我的log4j.properties文件

时间:2012-10-30 09:05:34

标签: java log4j

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

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

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

它只是在控制台上键入消息(文件未创建),当我从rootLogger中删除appender 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

2 个答案:

答案 0 :(得分:0)

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

将文件夹添加到类路径中

答案 1 :(得分:0)

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

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

您有以下选择:

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