2012-10-30 160 views
0

我一直在尝试首次使用log4j(或者就此而言,任何类型的日志库)。经过近2天的努力,我无法完成工作。org.apache.log4j无法识别我的log4j.properties文件

这是我正在使用的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 
+0

你可以编辑你的文章来显示你的程序在用'-Dlog4j.debug'启动时的输出吗? – beny23

回答

0

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

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

您有以下选择:

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

谢谢大家,问题是我从其中一个镜像下载的一些测试版软件包。它有非常多的jar文件。正确的软件包在apache log4j档案站点。我必须用Logger做更多的事情,并希望现在能够顺利进行。 – footloose

0

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