用于单独日志文件的直接 Spring 框架日志记录



我在基于springframework的应用程序中使用log4j。我需要将 spring 框架生成的日志消息定向到 app.log 文件和业务逻辑相关日志.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 并将其用于日志记录。但这两个文件都包含两个日志语句。请帮助我解决此问题。

正如 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

最新更新