我想要log4j2中的策略,即日志文件应同时基于时间和基于大小而滚动。这样,它应该每天滚动一次,并且大小达到最大10KB(用于测试目的)。为此,我尝试了以下示例。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration status="warn">
<Appenders>
<RollingFile name="fileLogger" fileName="E:\\Aditya\LOGS\AppLog.log" filePattern="E:\\Aditya\LOGS\AppLog-%d{yyyy-MM-dd-HH-mm-ss}-%i.log">
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<SizeBasedTriggeringPolicy size="10KB" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="debug">
<appender-ref ref="fileLogger" />
</Root>
</Loggers>
</Configuration>
上述配置的问题是每秒滚动文件。为了解决这个问题,我更改了
<RollingFile name="fileLogger" fileName="E:\\Aditya\LOGS\AppLog.log" filePattern="E:\\Aditya\LOGS\AppLog-%%d{yyyy-MM-dd-HH-mm-ss}-%%i.log">
TO
<RollingFile name="fileLogger" fileName="E:\\Aditya\LOGS\AppLog.log" filePattern="E:\\Aditya\LOGS\AppLog-%%d{yyyy-MM-dd}-%%i.log">
现在另一个问题是我的总日志文件每天限制为7个文件。我不知道为什么会这样,因为我没有提供这种配置。谁能帮我解决这个问题?预先感谢。
答案 0 :(得分:0)
我认为问题在于您的模式。只需尝试这些模式。 %d {HH:mm:ss,SSS}或%d {dd MMM yyyy HH:mm:ss,SSS}
检查此: log4j patterns