最近项目中遇到一个场景,要把具体业务数据打成日志,故想到用log4j来配置,将系统日志和业务日志打印到不同的文件里,具体配置示例如下:
# 配置系统日志,与正常配置一样
log4j.rootLogger=INFO,info
log4j.logger.info=INFO,info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.File=./logs/sys/sys.log
log4j.appender.info.Append=true
log4j.appender.info.Threshold=INFO
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern= %-d{yyyy-MM-dd HH:mm:ss} [%t:%r]-[%p] %l %m%n
# 配置业务日志,info级别以上的才打印
log4j.logger.dbLogger=INFO,dbLogger
# 这句配置一定要加,否则业务日志就会在rootLogger中又打印一份
log4j.additivity.dbLogger = false
log4j.appender.dbLogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dbLogger.File=./logs/db/db.log
log4j.appender.dbLogger.Append=true
log4j.appender.dbLogger.Threshold=INFO
log4j.appender.dbLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.dbLogger.layout.ConversionPattern= %m%n
代码中如何使用:
private static final Logger dbLogger = Logger.getLogger("dbLogger");
logger.info("sssss");