我第一次尝试使用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
答案 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配置文件的路径。