根据此链接,log4j2
可以强制从代码强制执行日志文件翻转,因为版本为2.5
。
https://issues.apache.org/jira/browse/LOG4J2-89
问题是:我怎么强迫这个? RollingFileManager
有一个public synchronized void rollover()
方法,由CronTriggeringPolicy
调用。
但是如何在运行时创建该策略呢?
答案 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并非真正设计为动态更新计划。