Java log4j-RollingFileAppender-datepattern和MaxFileSize

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

我正在使用log4j1.x(与slf4j一起使用)。我想在MaxFileSize达到100KB或每分钟(以先到者为准)时创建滚动文件。但是,在下面的代码中,DatePattern不起作用,也不是每分钟都创建文件

 <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。我试过你的建议,但没用。你测试过了吗?