如何使用 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 并非真正设计用于动态更新计划。
根据此 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 并非真正设计用于动态更新计划。