我刚开始使用log4j2和slf4j2,但我遇到了一个问题,我每天都在尝试创建滚动日志文件。我能够创建一个活动的日志文件但是当我将系统日期更改一天时,日志记录发生在同一个活动文件上,我认为它应该将前几天的日志存档到另一个文件。
以下是log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="ERROR" monitorInterval="5">
<Properties>
<Property name="log-path">${sys:catalina.base}/logs</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout
pattern="%d{dd-MMM-YYYY HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<RollingFile name="file-gen" fileName="${log-path}/demopro.log"
filePattern="${log-path}/%d{yyyy-MM}/demopro-%d{dd-MM-yyyy}.log.gz">
<PatternLayout
pattern="%d{dd-MMM-YYYY HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console" />
</Root>
<Logger name="org.hkb.tryone" level="debug" additivity="false">
<AppenderRef ref="Console" />
</Logger>
<Logger name="org.hkb.trytwo" level="info" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="file-gen" />
</Logger>
</Loggers>
</Configuration>
我在这里做错了什么?!
答案 0 :(得分:1)
我认为你的filePattern只能有一个%d变量。如果您有两个,则翻转策略无法确定翻转频率。
所以,替换你现在拥有的东西:
filePattern="${log-path}/%d{yyyy-MM}/demopro-%d{dd-MM-yyyy}.log.gz">
用这个:
filePattern="${log-path}/$${date:yyyy-MM}/demopro-%d{dd-MM-yyyy}.log.gz">