如何使用CronTriggeringPolicy强制RollingFile durign运行时?

时间:2016-05-13 08:50:58

标签: java log4j log4j2

根据此链接,log4j2可以强制从代码强制执行日志文件翻转,因为版本为2.5

https://issues.apache.org/jira/browse/LOG4J2-89

问题是:我怎么强迫这个? RollingFileManager有一个public synchronized void rollover()方法,由CronTriggeringPolicy调用。

但是如何在运行时创建该策略呢?

1 个答案:

答案 0 :(得分:3)

您可以使用CronTriggeringPolicy或您想要的任何其他策略配置RollingFileManager。

要以编程方式强制进行翻转,假设您已配置名为“RollingFile”的RollingFile Appender,您可以这样做:

import org.apache.logging.log4j.core.LoggerContext;

LoggerContext lc = (LoggerContext)LogManager.getContext(false);
Appender app = lc.getAppender("RollingFile");
if (app instanceof RollingFileAppender) {
    ((RollingFileAppender)app).getManager().rollover();
}

CronTriggeringPolicy并非真正设计为动态更新计划。