**本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接 **
问题:
我将log4j放入我的构建路径中后,但是当我运行程序时报了以下信息:
log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
这些warn是什么意思?此处的appenders是什么?
------------------------------以下为回答,按支持票数排序----------------------------------
回答1(支持票数506):
这个log4j指南的简短介绍虽然有些老了,但是仍然有效。
该指南将提供了有关如何使用loggers和appenders的信息。
这里为你提供两种简单的方法你可以参考下。 第一个就是将这一行添加到您的main方法中:
BasicConfigurator.configure();
第二种方法是将配置文件log4j.properties(从上述指南中获取)添加到您的类路径中:
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
回答2(支持票数78): 看来你需要将log4j.properties文件的路径添加到Eclipse中的Classpath中。
确保您的项目已在Eclipse中打开,然后单击Eclipse顶部的“运行”菜单,然后单击以下内容:
- Run
- Run Configurations
- Classpath (tab)
- User Entries
- Advanced (按钮在左边)
- Add Folders
- 然后导航到包含log4j.properties文件的文件夹
- log4j.properties file
- Apply
- Run 这样应该不会再出现错误信息。
回答3(支持票数52):
52
快速解决方案:
- 向
main function中添加如下代码:
String log4jConfPath = "/path/to/log4j.properties";
PropertyConfigurator.configure(log4jConfPath);
- 在/path/to 路径下创建一个名为log4j.properties的文件
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n