【问题标题】:Multiple rolling file appenders not working when configured with log4j2.properties使用 log4j2.properties 配置时,多个滚动文件附加程序不起作用
【发布时间】:2018-01-19 14:08:10
【问题描述】:

我正在尝试使用属性文件配置 log4j2。我需要有多个滚动文件附加程序才能登录多个文件。但我似乎无法让多个滚动文件附加程序工作。当我只使用一个滚动文件附加程序时,它似乎工作正常并生成了相应的日志文件。在多个附加程序的情况下,只有根记录器正在生成日志文件。

我目前的配置是:-

name = PropertiesConfig
status = warn
property.log-path = E:/logs

appenders =  rolling

appender.rolling.type = RollingFile
appender.rolling.name = rolAppender1
appender.rolling.fileName = ${log-path}/log1.log
appender.rolling.filePattern = ${log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}-log1.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MMM-dd - HH:mm} [%-p] %C{1}.%M(%F:%L)-:%m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = false

appender.rolling.type = RollingFile
appender.rolling.name = rolAppender2
appender.rolling.fileName = ${log-path}/log2.log
appender.rolling.filePattern = ${log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MMM-dd - HH:mm} [%-p] %C{1}.%M(%F:%L)-:%m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = false

appender.rolling.type = RollingFile
appender.rolling.name = rolAppender3
appender.rolling.fileName = ${log-path}/log3.log
appender.rolling.filePattern = ${log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}-log3.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MMM-dd - HH:mm} [%-p] %C{1}.%M(%F:%L)-:%m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = false

appender.rolling.type = RollingFile
appender.rolling.name = rolAppender4
appender.rolling.fileName = ${log-path}/log4.log
appender.rolling.filePattern = ${log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}-log4.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MMM-dd - HH:mm} [%-p] %C{1}.%M(%F:%L)-:%m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = false

appender.rolling.type = RollingFile
appender.rolling.name = rolAppender5
appender.rolling.fileName = ${log-path}/log5.log
appender.rolling.filePattern = ${log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}-log5.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MMM-dd - HH:mm} [%-p] %C{1}.%M(%F:%L)-:%m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = false

appender.rolling.type = RollingFile
appender.rolling.name = rolAppender6
appender.rolling.fileName = ${log-path}/log6.log
appender.rolling.filePattern = ${log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}-log6.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MMM-dd - HH:mm} [%-p] %C{1}.%M(%F:%L)-:%m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = false

appender.rolling.type = RollingFile
appender.rolling.name = rolAppender7
appender.rolling.fileName = ${log-path}/log7.log
appender.rolling.filePattern = ${log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}-log7.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MMM-dd - HH:mm} [%-p] %C{1}.%M(%F:%L)-:%m%n
appender.rolling.policies.type=Policies
appender.rolling.policies.time.type=TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = false

appender.rolling.type = RollingFile
appender.rolling.name = rolAppender8
appender.rolling.fileName = ${log-path}/log8.log
appender.rolling.filePattern = {log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}-log8.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MMM-dd - HH:mm} [%-p] %C{1}.%M(%F:%L)-:%m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = false

loggers = rolling 

logger.rolling.name = org.springframework
logger.rolling.level = fatal


logger.rolling.name = logger1
logger.rolling.level = info
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = rolAppender1

logger.rolling.name = logger2
logger.rolling.level = info
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = rolAppender2

logger.rolling.name = logger3
logger.rolling.level = info
logger.rlolling.additivity = false
logger.rolling.appenderRef.rolling.ref = rolAppender3

logger.rolling.name = logger4
logger.rolling.level = info
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = rolAppender4

logger.rolling.name = logger5
logger.rolling.level = info
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = rolAppender5

logger.rolling.name = logger6
logger.rolling.level = info
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = rolAppender6

logger.rolling.name = logger7
logger.rolling.level = info
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = rolAppender7


rootLogger.level = info
rootLogger.appenderRefs = f
rootLogger.appenderRef.f.ref = rolAppender8

我是 log4j2 的新手,对它了解不多。任何帮助,将不胜感激。

【问题讨论】:

    标签: logging log4j2


    【解决方案1】:

    您需要为所有附加程序使用不同的名称。现在它只是滚动。 应该是..

    appenders = rolling, rolling1, rolling2, .. so on
    
    appender.rolling.type = RollingFile
    appender.rolling1.type = RollingFile
    appender.rolling2.type = RollingFile
    

    这里rolling、rolling1、rolling2是针对不同日志的不同rolling appender。

    所有滚动附加程序及其相应的其他属性等等。我刚刚选择了一个属性“类型”作为示例。

    记录器也是如此。也一样。。

    【讨论】:

      【解决方案2】:

      我猜你复制了一个在线教程的 sn-p 代码,这可能是关于教如何滚动 single file 而不是 multiple files。如果这是真的,请记住在您自己的代码中使用教程的代码时要更加小心。

      appender.rolling.name = rolAppender2 中的rolling 为例。 rolling term 指定此配置属于哪个附加程序,每个 Appender 必须有一个唯一的术语,而不是所有附加程序的术语 rolling

      换句话说,尽管您通过为每个 appender 使用唯一名称来区分每个 appender,但您仍然为每个 appender 使用 appender.rolling....

      因此,您的代码应如下所示:

      appender.rollAppender1.type = RollingFile
      appender.rollAppender1.name = rollAppender1
      appender.rollAppender1.fileName = ${log-path}/log1.log
      appender.rollAppender1.filePattern = ${log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}-log1.log
      appender.rollAppender1.layout.type = PatternLayout
      .
      .
      .
      
      appender.rollAppender2.type = RollingFile
      appender.rollAppender2.name = rollAppender2
      appender.rollAppender2.fileName = ${log-path}/log2.log
      appender.rollAppender2.filePattern = ${log-path}/$${date:yyyy-MM}/Log-%d{dd-MMM-yyyy}-log2.log
      appender.rollAppender2.layout.type = PatternLayout
      .
      .
      .
      
      loggers=RollLogger1,RollLogger2
      
      logger.rolling1Logger.name = RollLogger1
      logger.rolling1Logger.level = info
      logger.rolling1Logger.additivity = false
      logger.rolling1Logger.appenderRef.rolling.ref = rollAppender1
      
      logger.rolling2Logger.name = RollLogger2
      logger.rolling2Logger.level = info
      logger.rolling2Logger.additivity = false
      logger.rolling2Logger.appenderRef.rolling.ref = rollAppender2
      .
      .
      .
      

      你也可以删除`

      【讨论】:

        猜你喜欢
        • 2021-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        相关资源
        最近更新 更多