我想将整个应用程序的所有日志详细信息存储在两个不同的文件中。例如:一个文件将包含所有 DEBUG 信息,而另一个文件将仅包含 ERROR
我当前的 log4j.properties 文件看起来像这样
log4j.rootLogger=DEBUG, file1
#Log Message in debug.log file
log4j.appender.file1=org.apache.log4j.FileAppender
log4j.appender.file1.File=log/debug.log
log4j.appender.file1.layout=org.apache.log4j.PatternLayout
log4j.appender.file1.layout.ConversionPattern=%-4r %d{dd MMM yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n
log4j.rootLogger=ERROR, file2
#Log Message in error.log file
log4j.appender.file2=org.apache.log4j.FileAppender
log4j.appender.file2.File=log/error.log
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.layout.ConversionPattern=%-4r %d{dd MMM yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n
但这只会更新 error.log 文件(最后提到的任何文件)
到目前为止我遇到的最好的解决方案是使用
log4j.logger.OTHER_LOGGER=DEBUG, file2
log4j.additivity.OTHER_LOGGER = false
#File Appender
log4j.appender.file2=org.apache.log4j.FileAppender
log4j.appender.file2.File=log/admin.log
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.append=false
log4j.appender.file2.layout.ConversionPattern=%-4r %d{dd MMM yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n
并使用
private static final Logger logger = LoggerFactory.getLogger("OTHER_LOGGER");
但是使用它的问题是更新日志时显示如下
0 22 Oct 2012 20:38:50 [main] INFO OTHER_LOGGER - testclass
现在这里没有提到报告日志的类,而是说 OTHER_LOGGER
因此,最好的方法是使用两个 rootLoger,但不知何故它不允许它
有人可以帮我吗?