Log4j output to multiple custom files

 

Introduce:

The powerful function of log4j is undeniable, but in practical applications, it is inevitable that a function needs to output a separate log file. How can we separate the required content from the original log and form a separate log file? In fact, this function can be easily achieved with a little configuration on the basis of the existing log4j .

 

Example:

    For the simple configuration of log4j , please refer to the log4j documentation, here is a configuration file:

#

## Configure the root logger level of log4j to ( DEBUG )

log4j.rootLogger=DEBUG

#

## Record the DAO layer log to DAOLog and ALLLog

log4j.logger.DAOLOG=DEBUG,DAOLOG,ALLLOG

#

## Record the logic layer log to ASLog and ALLLog

log4j.logger.ASLOG= DEBUG,ASLOG,ALLLOG

#

## Configure ALLLOG - record all log information

log4j.appender.ALLLOG = org.apache.log4j.DailyRollingFileAppender

log4j.appender.ALLLOG.file=${webapp.root}/logs/ALLLog.log

log4j.appender.ALLLOG.DatePattern='.'yyyyMMdd

log4j.appender.ALLLOG.layout=org.apache.log4j.PatternLayout

log4j.appender.ALLLOG.layout.ConversionPattern=%d{HH\:mm\:ss,SSS} %p %c - %m%n

log4j.additivity.ALLLOG=false

#

## Configure DAOLOG - record all DAO layer log information

log4j.appender.DAOLOG = org.apache.log4j.DailyRollingFileAppender

log4j.appender.DAOLOG.file=${webapp.root}/logs/DAOLog.log

log4j.appender.DAOLOG.DatePattern='.'yyyyMMdd

log4j.appender.DAOLOG.layout=org.apache.log4j.PatternLayout

log4j.appender.DAOLOG.layout.ConversionPattern=%d{HH\:mm\:ss,SSS} %p %c - %m%n

log4j.additivity.DAOLog=false

#

##配置ASLOG-记录所有业务逻辑层层日志信息

log4j.appender.ASLOG=org.apache.log4j.DailyRollingFileAppender

log4j.appender.ASLOG.file=${webapp.root}/logs/ASLog.log

log4j.appender.ASLOG.DatePattern='.'yyyyMMdd

log4j.appender.ASLOG.layout=org.apache.log4j.PatternLayout

log4j.appender.ASLOG.layout.ConversionPattern=%d{HH\:mm\:ss,SSS} %p %c - %m%n

log4j.additivity.ASLog=false

 

说明:

log4j.rootLogger//==配置跟logger日志级别及日志输出位置,如:

    log4j.rootLogger=ERROR,file,stdout表示,日志级别为ERROR的日志输出到控制台和file中。

但如果日志要分别输出到不同的文件中,如根据功能模块输出到不同文件,则无需将不同位置在此设置,否则在无法按照功能模块输出日志,导致不同文件记录相同的日志。

 

log4j.additivity是子Logger是否继承父Logger  输出源(appender)的标志位。具体说,默认情况下子Logger会继承父Loggerappender,也就是说子Logger 会在父Loggerappender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Loggerappender里输出。

 

转:http://mmz06.blog.163.com/blog/static/12141696201211160321662/ 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=327041594&siteId=291194637