我在基于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并将其用于日志记录。但是这两个文件都包含两个日志语句请帮我解决这个问题。
答案 0 :(得分:2)
正如Mani的评论所暗示的那样,您需要为每个包定义日志。
因此,如果您的spring框架包以org.springframework
开头而您的业务逻辑包以com.myapp
开头,那么您可以将以下行添加到log4j.properties中:
log4j.logger.org.springframework=DEBUG,appLogger
log4j.logger.com.myapp=DEBUG,bizLogger
当然,请根据您的偏好设置阈值(DEBUG
,INFO
等)。您可能还希望将additivity
设置为false:
log4j.additivity.org.springframework=false
log4j.additivity.com.myapp=false