如何手动旋转log4j日志 [英] How to rotate a log4j log manually
本文介绍了如何手动旋转log4j日志的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已将log4j配置为每天轮换日志.
I have log4j configured to rotate the log every day.
在特殊情况下,我想手动触发其他日志轮换.
In special situations I would like to trigger an additional log rotation manually.
这可能吗?如果可以,怎么办?
Is this possible - and if so: How?
已解决:
void rolloverLogs() {
for(final Enumeration<?> loggers = LogManager.getCurrentLoggers(); loggers.hasMoreElements(); ) {
final Logger logger = (Logger) loggers.nextElement();
for (final Enumeration<?> appenders = logger.getAllAppenders(); appenders.hasMoreElements(); ) {
final Appender a = (Appender) appenders.nextElement();
if(!RollingFileAppender.class.isInstance(a))
continue;
((RollingFileAppender)a).rollOver();
}
}
}
推荐答案
如果您要跟踪附加程序,可以致电
If you're keeping track of your appenders, you could call
https://logging. apache.org/log4j/1.2/apidocs/org/apache/log4j/RollingFileAppender.html#rollOver()
应该这样做.我想也可以遍历从根级别开始找到的所有附加程序,只需确保跟踪已滚动的附加程序即可.
That should do it. I guess it's also possible to iterate through all appenders you can find starting from root level - just make sure you keep track of which appenders you already rolled.
这篇关于如何手动旋转log4j日志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文