0

我第一次尝试使用 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
4

2 回答 2

0

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

于 2012-10-30T09:16:48.717 回答
0

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

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

您有以下选择:

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