对于异步日志记录,尚未写入目标appender且应用程序/系统的日志会发生什么变化?我们是否丢失了这些日志(因为它们在内存中)还是有办法恢复它们?
我不想丢失任何ERROR级别的日志记录。所以我的下一个问题是:有没有办法在日志级别为单个appender配置同步和异步日志记录?对于例如我希望我的文件appender在INFO / DEBUG异步时同步执行ERROR级别日志记录吗?
提前致谢!
答案 0 :(得分:3)
如果进程正常处理,则将处理队列中的所有事件。有关AsyncLogger关闭的详细信息,请参阅this code。
如果不允许进程进行清理(例如kill -9
),那么您可能会丢失事件。这就是人生。
如果希望同步处理ERROR级别日志事件,但异步处理其他级别,则可能无法使用AsyncLogger,但可以使用AsyncAppender。您可以配置Logger以路由到FileAppender和AsyncAppender。 AsyncAppender路由到FileAppender。然后使用Filters使AsyncAppender仅接受INFO及以下,而FileAppender接受ERROR及更高版本。