【发布时间】:2016-08-27 04:24:13
【问题描述】:
我在我的项目中使用 log4j。我想要标准输出、调试记录器和最终报告记录器。调试记录器几乎可以编写调试/信息级别的消息。报告将是一个不同的记录器,只写信息消息。我尝试了不同的方法,阅读了很多示例,但我仍然无法弄清楚。要么我丢失了我的标准输出,要么我将所有调试都写入两个记录器。
## Root logger option
log4j.rootLogger=DEBUG,stdout,debug_Log,reports_Log
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 [%F:%t:%L] - %m%n
log4j.appender.debug_Log=org.apache.log4j.RollingFileAppender
log4j.appender.debug_Log.File=c:\\debug.log
log4j.appender.debug_Log.MaxFileSize=10MB
log4j.appender.debug_Log.MaxBackupIndex=10
log4j.appender.debug_Log.maxFileSize=10MB
log4j.appender.debug_Log.layout=org.apache.log4j.PatternLayout
log4j.appender.debug_Log.layout.ConversionPattern=%d-[%t-%F] %-5p %m%n
log4j.appender.reports_Log=org.apache.log4j.FileAppender
log4j.appender.reports_Log.File=c:\\Walmart.log
log4j.appender.reports_Log.layout=org.apache.log4j.PatternLayout
log4j.appender.reports_Log.layout.ConversionPattern=%d %-5p %m%n
log4j.logger.org.springframework=WARN
log4j.logger.org.apache.component=WARN
log4j.logger.org.apache.http=WARN
log4j.logger.org.apache.http.impl.conn=WARN
log4j.logger.org.apache.http.impl.client=WARN
log4j.logger.org.apache.http.client=WARN
log4j.logger.debug_Log=DEBUG, debug_Log
log4j.logger.reports_Log=INFO, reports_Log
log4j.logger.stdout=DEBUG, stdout
log4j.additivity.debug_Log=false
log4j.additivity.reports_Log=false
log4j.additivity.stdout=false
我的代码在这里
import org.apache.log4j.Logger;
static final Logger debugLog = Logger.getLogger("debug_Log");
static final Logger resultLog = Logger.getLogger("reports_Log");
public static void main(String[] args) {
debugLog.info("Welcome to AmzCompareSale application");
debugLog.debug("DEbugLog debug");
}
任何提示将不胜感激 =)
【问题讨论】:
-
log4j.appender.reports_Log.Threshold=INFO。现在它将忽略 DEBUG 级别的日志消息。 -
也许have a look at this 可以更好地了解记录器和附加程序的工作原理