How do you flush a buffered log4j FileAppender?

前端 未结 7 1735
感动是毒
感动是毒 2020-12-01 09:49

In log4j, when using a FileAppender with BufferedIO=true and BufferSize=xxx properties (i.e. buffering is enabled), I want to be able to flush the log during normal shutdown

相关标签:
7条回答
  • 2020-12-01 10:21
    public static void flushAll() {
        final LoggerContext logCtx = ((LoggerContext) LogManager.getContext());
        for(final org.apache.logging.log4j.core.Logger logger : logCtx.getLoggers()) {
            for(final Appender appender : logger.getAppenders().values()) {
                if(appender instanceof AbstractOutputStreamAppender) {
                    ((AbstractOutputStreamAppender) appender).getManager().flush();
                }
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题