我有一个log4j appender定义如下:
log4j.logger.com.example = DEBUG, filelog
log4j.appender.filelog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.filelog.File=c:/app.log
log4j.appender.filelog.layout=org.apache.log4j.PatternLayout
log4j.appender.filelog.layout.ConversionPattern=%d | %m%n
log4j.appender.filelog.DatePattern=.dd-MM-yyyy
在我的班上,我得到了记录器:
Log logger = LogFactory.getLog(getClass());
这工作正常.我希望有一个记录器,它总是记录某些消息(不是错误,而是事务所花费的时间).如果我在DEBUG或INFO中写这些,如果更改了日志级别,我将看不到它们.我想我可以使用写入同一文件的另一个appender来完成此操作.
这可能有两个appender写入同一个文件?我如何获得我想在同一个类中使用普通调试appender和事务性appender的logger实例?这些消息不会都在同一个包中,因此我无法将某个包配置为始终记录.我是否必须让这些appender写入不同的文件,或者我可以在代码中检索它们并具有以下内容:
Log alwaysLogger = LogFactory.getLog(ALWAYS);
alwaysLogger.debug("This message will always be written regardless of the level set on the filelog appender");
更新
如果需要,我可以写两个不同的日志文件,但是如何在我的类中获取记录器实例?我不想将一个包/类配置为始终使用一个appender而不是另一个apixder,因为类必须在正常运行期间记录信息/错误消息和事务性“始终”消息.有没有办法完成我需要的东西,即使它写入两个不同的日志文件?