在添加log4j到我的应用程序后,每次执行我的应用程序时,我都会得到以下输出:
log4j:WARN No appenders could be found for logger (slideselector.facedata.FaceDataParser).
log4j:WARN Please initialize the log4j system properly.
这似乎意味着一个配置文件丢失了。
这个配置文件应该放在哪里,一个好的开始内容是什么?
我正在使用纯java开发桌面应用程序。所以没有网络服务器等等…
找到一个log4j。属性或log4j.xml,它具有根追加器,并将其放在类路径中。
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.rootLogger=debug, stdout
将登录到控制台。我更喜欢记录而不是文件,这样您就可以事后进行调查。
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=100KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=test.log
log4j.appender.file.threshold=debug
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug,file
尽管对于详细日志记录应用程序,100KB通常需要增加到1MB或10MB,特别是调试。
我个人设置了多个记录器,并将根记录器设置为警告或错误级别,而不是调试级别。
如前所述,有两种方法
首先是将这一行添加到你的main方法中:
BasicConfigurator.configure();
第二种方法是添加这个标准log4j。属性文件到你的类路径:
在采用第二种方法时,您需要确保正确地初始化了文件。
Eg.
Properties props = new Properties();
props.load(new FileInputStream("log4j property file path"));
props.setProperty("log4j.appender.File.File", "Folder where you want to store log files/" + "File Name");
确保创建了存储日志文件所需的文件夹。