使用log4j2.properties配置时,多个滚动文件追加程序无法正常工作

时间:2017-08-11 06:50:24

标签: logging log4j2

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

我目前的配置是: -

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的新手,并不太了解它。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:0)

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

appenders = rolling, rolling1, rolling2, .. so on

appender.rolling.type = RollingFile
appender.rolling1.type = RollingFile
appender.rolling2.type = RollingFile

这里rolling,rolling1,rolling2是不同日志的不同滚动appender。

所有滚动appender及其相应的其他属性的

等等。我刚刚选择了一个属性'type'作为例子。

记录器也是如此。以及..

答案 1 :(得分:0)

我想您已经复制了一个在线教程的摘录代码,这可能是关于教如何滚动single file而不是multiple files的代码。如果是这样,请记住在您自己的代码中使用教程代码时要格外小心。

例如,查看rolling中的appender.rolling.name = rolAppender2rolling术语指定此配置属于哪个附加程序,并且对于所有附加程序,每个Appender必须具有唯一的术语而不是术语rolling

换句话说,尽管您通过为每个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 . . .

因此,您的代码应类似于以下内容:

select="member[some $timeframe in role/timeframe satisfies $timeframe/xs:date(begin) le current-date() and ($timeframe/xs:date(end) gt current-date() or not($timeframe/end))]"

您还可以删除`