最近工作中遇到所有日志需要记录到一个文件,而错误的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会继承父Logger的appender,也就是说子Logger 会在父Logger的appender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。