log4j配置文件说明

先来一段配置代码:


#
log4j.rootLogger=DEBUG,STDOUT,FSAS_SDK_LOG,SDK_ERR_LOG,SDK_MSG_LOG
#STD
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.ImmediateFlush=true
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=[%d{HH:mm:ss}|%-5p|(%c)]=[%m]%n
#log4j.appender.SERVER_INFO=org.apache.log4j.DailyRollingFileAppender
#INFO
log4j.appender.FSAS_SDK_LOG=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.mpiLog.Threshold=INFO
log4j.appender.FSAS_SDK_LOG.ImmediateFlush=true
log4j.appender.FSAS_SDK_LOG.DatePattern='.'yyyy-MM-dd
log4j.appender.FSAS_SDK_LOG.File=D:/logs/fsassdk.log
log4j.appender.FSAS_SDK_LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.FSAS_SDK_LOG.layout.ConversionPattern=[(%d{yyyyMMddHHmmss})|(%c)]=[%m]%n
#ERROR
log4j.appender.SDK_ERR_LOG=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.SDK_ERR_LOG.Threshold=INFO
log4j.appender.SDK_ERR_LOG.ImmediateFlush=true
log4j.appender.SDK_ERR_LOG.DatePattern='.'yyyy-MM-dd
log4j.appender.SDK_ERR_LOG.File=D:/logs/fsassdk-error.log
log4j.appender.SDK_ERR_LOG.encoding=UTF-8
log4j.appender.SDK_ERR_LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SDK_ERR_LOG.layout.ConversionPattern=[(%d{yyyyMMddHHmmss})|(%c)]=[%m]%n
#MESSAGE
log4j.appender.SDK_MSG_LOG=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.SDK_MSG_LOG.Threshold=INFO
log4j.appender.SDK_MSG_LOG.ImmediateFlush=true
log4j.appender.SDK_MSG_LOG.DatePattern='.'yyyy-MM-dd
log4j.appender.SDK_MSG_LOG.File=D:/logs/fsassdk-message.log
log4j.appender.SDK_MSG_LOG.encoding=UTF-8
log4j.appender.SDK_MSG_LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SDK_MSG_LOG.layout.ConversionPattern=[(%d{yyyyMMddHHmmss})|(%c)]=[%m]%n

Log4J的三个组件:
Logger:日志记录器,负责收集处理日志记录(如何处理日志)
Appender:日志输出目的地,负责日志的输出(输出到什么 地方)
Layout:日志格式化,负责对输出的日志格式化(以什么形式展现)

1、多个logger
多个logger更为灵活,可以记录特定的信息。比如自己的项目proA依赖了proB,proB里面有很多打日志的代码,干扰了我们proA的业务日志,那么就可以让它们使用不同的logger,记往不同的地方。
log4j.rootLogger=DEBUG,STDOUT,FSAS_SDK_LOG,SDK_ERR_LOG,SDK_MSG_LOG
定义了多个logger,FSAS_SDK_LOG是logger名字

2、appender
一个logger对应着若干个appender和一个日志级别。
一个appender对应着一个输出位置与格式。

log4j.appender.FSAS_SDK_LOG=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.mpiLog.Threshold=INFO
log4j.appender.FSAS_SDK_LOG.ImmediateFlush=true
log4j.appender.FSAS_SDK_LOG.DatePattern='.'yyyy-MM-dd
log4j.appender.FSAS_SDK_LOG.File=D:/logs/fsassdk.log
log4j.appender.FSAS_SDK_LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.FSAS_SDK_LOG.layout.ConversionPattern=[(%d{yyyyMMddHHmmss})|(%c)]=[%m]%n

定义了FSAS_SDK_LOG这个logger的日志格式、位置、级别

3、代码中加载logger

private final static Logger GATELOG = LoggerFactory.getLogger("FSAS_SDK_LOG");
private final static Logger GATELOG_ERROR = LoggerFactory.getLogger("SDK_ERR_LOG");
private final static Logger GATELOG_MESSAGE = LoggerFactory.getLogger("SDK_MSG_LOG");

猜你喜欢

转载自blog.csdn.net/csj50/article/details/81415478