java - log4J AsyncAppender 的停止线程

标签 java thread-safety log4j

我在我的应用程序中使用 Log4J AsyncAppender,我想知道,当我的应用程序完成时,AsyncAppender 的线程会发生什么?我应该手动终止线程还是可以忘记它并退出我的应用程序而不用担心某些日志消息会丢失?

最佳答案

如果您在 JVM 关闭之前调用 LogManager.shutdown(),它将继续运行直到 appender 被刷新。请注意,这仅对 log4j 1.x 是必需的。我从文档中了解到 Log4j 2 会自动注册一个关闭 Hook 来处理这个问题。

关于java - log4J AsyncAppender 的停止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821247/

相关文章:

java - 实例化非最终静态变量是线程安全的吗?

java - 如何在log4j中自动折叠重复的日志输出

java.io.FileNotFoundException some_path XXXXX(文件名、目录名或卷标语法不正确)

java - java变量可以是无界通配符吗?

java - finally 语句在 try/catch java 中不起作用?

c - 在 C 代码库中查找全局/静态变量的工具

java - RocksDB WriteBatch 线程安全吗?

java - jlink:应用程序 jar 未在/bin 文件夹中创建

java - java和c++中的多维数组有什么区别?

log4j - 在记录器 Log4j 中打印上下文根