Sam*_*rai 9 java log4j rollingfileappender
嗨,我正在使用Log4j进行日志记录.以下是我的配置.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="FileAppender_Comp3" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy name="file" class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="log/Comp3_%d{dd-MM-yyyy HH-mm-ss}.log" />
</rollingPolicy>
<triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="MaxFileSize" value="3kb"/>
</triggeringPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p [%t] %c (%F:%L) - %m%n"/>
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
但是当我运行文件时,它会抛出以下错误.
log4j:WARN Failed to set property [maxFileSize] to value "3kb".
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题.请帮我.
如果使用Log4j 2,则可以KB或MB为单位指定大小。
下面的相关XML。
<Policies>
<!-- Starts a new log on tomcat start -->
<OnStartupTriggeringPolicy />
<!-- Starts a new file when size reaches threshold -->
<SizeBasedTriggeringPolicy size="10 MB" />
<!-- causes a rollover once the date/time pattern no longer
applies to the active file -->
<TimeBasedTriggeringPolicy />
</Policies
Run Code Online (Sandbox Code Playgroud)
请参阅https://logging.apache.org/log4j/2.x/manual/appenders.html了解更多详细信息。
小智 5
根据文档,MaxFileSize 必须是长值。请查看https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/rolling/SizeBasedTriggeringPolicy.html
因此,在本例中该值应为 3072,而不是 3kb。
刚好遇到这个问题,我想我应该分享一下解决方案:
将 MaxFileSize 参数设置为以字节为单位的值,因此对于您的示例,您将其设置为
<param name="MaxFileSize" value="3072"/>
Run Code Online (Sandbox Code Playgroud)
这是一个类似的问题,其中确认了该解决方案。