直接弹簧框架记录单独的日志文件

时间:2013-12-27 17:09:56

标签: spring log4j

我在基于springframework的应用程序中使用log4j。我需要将spring框架生成的日志消息定向到app.log文件和business.log文件的业务逻辑相关日志。 我的log4j.property文件如下所示。

log4j.rootLogger=DEBUG, appLogger, bizLogger

log4j.appender.appLogger=org.apache.log4j.RollingFileAppender
log4j.appender.appLogger.File=./logs/app.log
log4j.appender.appLogger.MaxFileSize=200KB
log4j.appender.appLogger.MaxBackupIndex=2
log4j.appender.appLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.appLogger.layout.ConversionPattern=%d [%c] %p - %m%n

log4j.appender.bizLogger=org.apache.log4j.RollingFileAppender
log4j.appender.bizLogger.File=./logs/biz.log
log4j.appender.bizLogger.MaxFileSize=200KB
log4j.appender.bizLogger.MaxBackupIndex=2
log4j.appender.bizLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.bizLogger.layout.ConversionPattern=%d [%c] %p - %m%n

我在代码中获取bizLogger并将其用于日志记录。但是这两个文件都包含两个日志语句请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

正如Mani的评论所暗示的那样,您需要为每个包定义日志。

因此,如果您的spring框架包以org.springframework开头而您的业务逻辑包以com.myapp开头,那么您可以将以下行添加到log4j.properties中:

log4j.logger.org.springframework=DEBUG,appLogger
log4j.logger.com.myapp=DEBUG,bizLogger

当然,请根据您的偏好设置阈值(DEBUGINFO等)。您可能还希望将additivity设置为false:

log4j.additivity.org.springframework=false
log4j.additivity.com.myapp=false