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

How to force RollingFile durign runtime with CronTriggeringPolicy?

根据此 link,log4j2 可以从代码强制日志文件翻转,因为版本 2.5.

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

问题是:我怎样才能强制执行此操作? RollingFileManager 有一个 public synchronized void rollover() 方法,由 CronTriggeringPolicy.

调用

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

您可以使用 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 并非真正设计用于动态更新计划。