我使用RollingFileAppender
和logger类将日志打印到文件中,我没有单独的配置文件。
public void logBIHAuditMessage(String message, Level level, String Location) {
try {
RollingFileAppender fileAppender = new RollingFileAppender(new PatternLayout(
"%d{DATE} %p %M %m %n"), "C:\\Logfiles\\Audit.log", true);
fileAppender.setMaxFileSize("5MB");
fileAppender.setMaxBackupIndex(5);
fileAppender.activateOptions();
LOG.addAppender(fileAppender);
LOG.info(message);
fileAppender.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
在Apache camel应用程序中从多个位置调用logBIHAuditMessage
。
由于使用了fileAppender.close();
10:36:39,715 ERROR [stderr](Camel(camel-9)thread#20 - JmsConsumer [BIH_A1_Req_INHQ])log4j:ERROR尝试附加到名为[null]的已关闭的appender。
如果我不关闭文件追加器,则会多次打印相同的日志。
如果我不使用synchronized关键字也会多次打印一些日志,请告诉我可能是什么问题?
答案 0 :(得分:0)
Log4J中有两个log4j.properties
。
您在类路径中保留一个并且其他正在加载的可以使用PropertyConfigurator.configure(..)).
以编程方式删除。
或者,您可以通过以下代码覆盖它。
BasicConfigurator.resetConfiguration();
PropertyConfigurator.configure(props);