java - 如何在 Log4j 中使用 SizeBasedTriggeringPolicy 和 TimeBasedRollingPolicy?

标签 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>

但是当我运行文件时它抛出了以下错误。

log4j:WARN Failed to set property [maxFileSize] to value "3kb". 

我该如何解决这个问题。请帮助我。

最佳答案

如果您使用 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

请参阅https://logging.apache.org/log4j/2.x/manual/appenders.html了解更多详情。

关于java - 如何在 Log4j 中使用 SizeBasedTriggeringPolicy 和 TimeBasedRollingPolicy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257477/

相关文章:

java - 定义数字是否为三角数的最快方法

java - swingWorker调用的synchronized方法被中断?

java - Log4j 和 ${HOME} 变量 - HOME 未按预期扩展

Log4j 滚动策略和 MaxbackupIndex

.net - 您是否知道 log4net 附加程序可以按日期滚动,但可以限制文件总数?

java - 在 HQL 查询中使用 native SQL 子查询?

java - 当 System.nanoTime() 在调用之间返回相同的值时如何处理?

java - 使用 and 运算符进行 Eclipse Java 编码

eclipse - 如何找到 Maven 传递依赖的父级

log4j2:如何强制滚动文件附加程序翻转?