当前位置: 首页 > 知识库问答 >
问题:

Log4j2指定持续时间后自动翻转

万俟经纶
2023-03-14

我正在使用RollingFile appender。我希望日志文件每隔20分钟滚动一次,而不考虑日志事件。例如,在一个小时内,我应该有3个日志文件,即使在该小时内可能没有任何日志记录。使用log4j2是否可能做到这一点?如果是,请提供所需的配置(log4j2.xml)。以下配置似乎不起作用:

       <RollingFile name="RECHARGE_NMCD" fileName="D:/rc_nmcd/rc_nmcd.log" append="true" bufferedIO="false" filePattern="D:/rc_nmcd/rc_nmcd_%d{yyyy-MM-dd-HH-mm}.process">
            <PatternLayout>
                <Pattern>%m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="20"/>
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingFile>

共有1个答案

於乐
2023-03-14

我不认为你可以让Log4J2每隔N分钟就滚动一次,看起来你可以让它每分钟、每小时、每天都这样做,但不是20分钟。(请参阅https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/dailyrollingfileappender.html-您可以使用不同的日期模式将其更改为“每分钟”)

我没有尝试过,但可能有一种方法可以通过提供一个自定义的翻转策略来定制这个...

https://logging.apache.org/log4j/2.x/log4j-core/apidocs/org/apache/logging/log4j/core/appender/rolling/defaultrolloverstrategy.html

如果这样行得通,请贴出你的答案供其他人学习!

 类似资料:
  • 我有一个Java应用程序,它通过cron作业(java-jar...)每小时运行几分钟。它在自己的JVM中运行,而不是像Tomcat那样在连续运行的环境中运行。我正在使用log4j2.11进行日志记录。在应用程序中,我有一个具有特定翻转要求的特定记录器: null 我不能监视简单名为“rolling.log”的文件(因为它不存在),而必须使用文件名的特定日期版本。 我无法使用log4j对翻转功能的

  • 问题内容: 如何获取格式为2个字符串的持续时间? 我正在尝试使用Calendar类并检查。我与此有关的问题是它不一致。知道我在做什么错吗?每次我运行该程序时,如果没有,输出40-70行到控制台。 问题答案: 那是一个已记录的错误。 尝试在设置日历之前清除日历:

  • 许多记者将显示测试持续时间,以及标记缓慢的测试,如“spec”记者所示: 要调整被认为“慢”的东西,您可以使用以下slow()方法: describe('something slow', function() { this.slow(10000); it('should take long enough for me to go make a sandwich', function() { /

  • 我不知道如何在iOS7中设置NSLayoutConstraint动画持续时间。这是我的代码:

  • 在我的应用程序中,用户需要能够输入持续时间,包括分钟和秒。 我正在考虑使用Windows中的控件来更改时间,虽然我只需要几分钟和几秒钟,而且箭头也很好,但不是必需的。 JavaFX 2中是否已经有此控件 如果没有,我如何创建这样的控件 上述Windows控件的屏幕截图: 谢谢你的提示!

  • 我正在寻找一种从“ISO 8601持续时间格式”(P0DT0H0M0S)转换为小时的便捷方法。 到目前为止,我想到了这个: 如您所见,我的方法是将数字拆分并乘以24、1、1/60、1/3600以得到小时。我可以减少代码量吗? 样本数据和所需结果 输入: 'P1DT2H3M44S' (1 天 2 小时 3 分 44 秒) 期望输出: 26.062222222222222 (这是小时)