Java log4j-RollingFileAppender-datepattern和MaxFileSize
我正在使用log4j1.x(与slf4j一起使用)。我想在MaxFileSize达到100KB或每分钟(以先到者为准)时创建滚动文件。但是,在下面的代码中,DatePattern不起作用,也不是每分钟都创建文件Java log4j-RollingFileAppender-datepattern和MaxFileSize,java,log4j,rollingfileappender,fileappender,Java,Log4j,Rollingfileappender,Fileappender,我正在使用log4j1.x(与slf4j一起使用)。我想在MaxFileSize达到100KB或每分钟(以先到者为准)时创建滚动文件。但是,在下面的代码中,DatePattern不起作用,也不是每分钟都创建文件 <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="${catalina.home}/logs/Rollin
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${catalina.home}/logs/RollingFileAppender.log"/>
<param name="Append" value="true"/>
<param name="MaxBackupIndex" value="2"/>
<param name="MaxFileSize" value="100KB"/>
<param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm"/>
<param name="ConversionPattern" value="%d{yyyy-MM-dd}-%t-%x-%-5p-%-10c:%m%n" />
</appender>
我甚至尝试过这个,但在这个场景中,它甚至没有创建任何文件。-
<appender name="fileAppender" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="ActiveFileName" value="${catalina.home}/logs/RollingFileAppender.log" />
<param name="FileNamePattern" value="${catalina.home}/logs/RollingFileAppender.%d{dd-MMM}.log.gz" />
</rollingPolicy>
<triggeringPolicy
class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="MaxFileSize" value="100KB" />
</triggeringPolicy>
<param name="ConversionPattern" value="%d{yyyy-MM-dd}-%t-%x-%-5p-%-10c:%m%n" />
</appender>
解决这个问题的正确方法是什么 似乎您的XML文件不完整,您需要将appender附加到根标记处,并具有所需的日志记录级别
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="1000KB" />
<param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm" />
<param name="maxBackupIndex" value="2" />
<param name="file" value="${catalina.home}/logs/RollingFileAppender.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<level value="ERROR" />
<appender-ref ref="fileAppender" />
</root>
</log4j:configuration>
我想您正在寻找的是
DailRollingFileAppender
实现。在DatePattern中做了什么。
但这并不是每分钟都更新文件。有没有办法在这段代码中添加每分钟后滚动的功能?我已经更新了答案。试一试,如果您觉得这有帮助,请将其标记为接受答案DailyRollingFileAppender不支持maxBackupIndex。RollingFileAppender支持maxBackupIndex。但是我们不能同时向RollingFileAppender添加maxBackupIndex和datepattern。我试过你的建议,但没用。你测试过了吗?