java - Logback线程池

标签 java logging logback

我使用 Logback 进行日志记录,我有一个问题。 我将 AsyncAppender 与 ConsoleAppender 结合使用。 当应用程序启动时,它会创建具有“logback-”线程名称的线程池。 所有日志记录工作均由“AsyncAppender-Worker-”线程完成。 创建具有“logback-”线程名称的线程池的目的是什么?它的作用是什么?

最佳答案

简短回答

这些线程用于 logback 需要在后台完成的所有其他工作 - 基于时间的翻转、套接字附加程序、异步 SMTP 附加程序等。

稍微长一点的答案

通过运行 a search on "logback-" over the logback codebase ,我只发现一个使用它的地方:ExecutorServiceUtil

此帮助程序类用于创建执行程序服务(只能通过Contextbase.getScheduledExecutorService()访问),通过跟踪其用法,我发现了以下用法:

  • 基于时间的翻转将异步压缩(如果启用压缩)并清理旧存档。我认为这是因为在应用程序线程上压缩旧文件是一件坏事。
  • 套接字附加程序有一个连接器线程,如果连接失败,该连接器线程会重新连接,并且有一个由后台线程处理的异步消息缓冲区。
  • 如果以这种方式配置,SMTP 附加程序可以是异步的 - 那么它也将使用后台执行程序。

这是一份详尽的列表。注意,这些都是从源代码中读取的。基于时间的翻转虽然异步绝对有意义,但没有记录为异步,因此可能会发生变化。套接字附加程序和 SMTP 附加程序被记录为使用后台线程。

关于java - Logback线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53944821/

相关文章:

java - java中是否存储了运行时类型信息?

java - log4j 问题 : redirect logg to many files

java - 如何将edittext的默认值设为0?

java - 有没有一种方法可以获取方法中的所有语句,而无需手动遍历 AST

python - 使用 s3fs 更新日志文件

spring - <springProperty> 配置元素的 Spring logback 范围属性的含义是什么?

scala - 使用 Scala 和 logback 配置 Apache Spark 日志记录

java - Wildfly8/jBoss 包装 Logback 日志(双前缀)

java - 如何通过单选按钮更改另一个 Activity 中的文本

java - 奇怪的 "18 chars"LOGBack 行为