如何手动旋转log4j日志 [英] How to rotate a log4j log manually

查看:163
本文介绍了如何手动旋转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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆