Log4j日志根据配置输出到多个自定义文件

  最近工作中遇到所有日志需要记录到一个文件,而错误的sql执行记录到另一个文件中,查询了一些资料搞定,记录下来。顺便吐槽下公司限制印象笔记的使用。

##log4j.rootLogger=INFO, CONSOLE, FILE

##deployment project Change
log4j.rootLogger=CONSOLE,DEBUG

## to console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyyMMdd HH:mm:ss} - %m%n
## to file
log4j.logger.allLog =ERROR,FILE
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=/mnt/disk1/tomcat/tomcat1/logs/logstat.log
log4j.appender.FILE.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.FILE.Append = true
log4j.appender.FILE.encoding = UTF-8
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} - %m%n

log4j.logger.errSql =ERROR,A1
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=/mnt/disk1/tomcat/tomcat1/logs/errsql.log
log4j.appender.A1.MaxFileSize= 2MB
log4j.appender.A1.MaxBackupIndex=1000
log4j.appender.A1.Threshold = ERROR 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%5p [%d{yyyy-MM-dd HH:mm:ss,SSS}] (%F:%L) - %m%n
private static Logger logger = Logger.getLogger("errSql");
private static Logger logger = Logger.getLogger("allLog");

说明:

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

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

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

 

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

  

原文地址:https://www.cnblogs.com/lcxdever/p/3711070.html