您的位置:首页 > 其它

Log4j不同业务输出日志到不同文件

2020-02-12 23:06 295 查看

问题

在使用Log4j的过程中,可能会遇到以下场景:
对于不同的业务,使用不同名称的Logger,这些Logger打印的日志需要保存到不同文件中,对于这个问题,可以通过log4j.properties文件进行配置。

解决方案

log4j.properties

log4j.rootLogger=INFO, CONSOLE, xToFile, yToFile

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss'Z'} [%t] %-5p [%c] - %m%n

log4j.logger.x=INFO, xToFile
log4j.logger.x.org.springframework=error
log4j.appender.xToFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.xToFile.File= D://log.log
log4j.appender.xToFile.DatePattern = "."yyyy-MM-dd
log4j.appender.xToFile.layout=org.apache.log4j.PatternLayout
log4j.appender.xToFile.layout.ConversionPattern=[%t][%d{yyyy-MM-dd HH:mm:ss.SSS}] [%p]: [%c][%M][%l] [%m] %n
log4j.additivity.x=false

log4j.logger.y=INFO, yToFile
log4j.appender.yToFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.yToFile.File= D://log2/log.log
log4j.appender.yToFile.DatePattern = "."yyyy-MM-dd
log4j.appender.yToFile.layout=org.apache.log4j.PatternLayout
log4j.appender.yToFile.layout.ConversionPattern=[%t][%d{yyyy-MM-dd HH:mm:ss.SSS}] [%p]: [%c][%M][%l] [%m] %n
log4j.additivity.y=false

默认情况下子Logger 会继承 父Logger 的appender,也就是说 子Logger 会在 父Logger 的appender里输出。若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。

使用

public static Logger log= LoggerFactory.getLogger("xToFile");
public static Logger log2= LoggerFactory.getLogger("yToFile");

参考文档:
log4j.properties配置文件详解
Log4j不同模块输出到不同的文件中

  • 点赞
  • 收藏
  • 分享
  • 文章举报
AndyZhanggg 发布了8 篇原创文章 · 获赞 0 · 访问量 111 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: