简体   繁体   English

log4j - RollingFileAppender - 日期模式和 MaxFileSize

[英]log4j - RollingFileAppender - datepattern and MaxFileSize

I'm using log4j 1.x (with slf4j).我正在使用 log4j 1.x(带有 slf4j)。 I want to create rolling files when the MaxFileSize reaches 100KB or every minute, whichever comes first.我想在 MaxFileSize 达到 100KB 或每分钟时创建滚动文件,以先到者为准。 However, with the following code, DatePattern is not working and it is not creating files every minute.但是,使用以下代码,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>

I even tried this, but in this scenario, it is not even creating any file.我什至尝试过这个,但在这种情况下,它甚至没有创建任何文件。 - ——

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

What would be the right way to fix this issue?解决此问题的正确方法是什么?

Seems like your XML file is incomplete, you need to attach your appender at the root tag with the desired logging level似乎您的 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>

I think what you are looking for is the DailyRollingFileAppender implementation.我认为您正在寻找的是DailyRollingFileAppender实现。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM