java - 用于在 Logback 中压缩日志文件的单独线程?

标签 java performance logging logback

在 Logback 中,我们可以配置为: 1 当日志文件的大小达到 50MB 左右时,旋转文件并压缩它。所以我想知道它是否会在单独的线程中执行压缩操作,它会不会有任何性能问题?

最佳答案

我调查了 logback-1.0.3。 让我们考虑用例:

  1. 您调用 Logger#error(String)在你的代码中。
  2. 您的数据 filtered根据记录器配置。
  3. 将调用 AppendersbuildLoggingEventAndAppend 之后和 callApenders
  4. 在你的例子中将调用 OutputStreamAppender 中的 append 方法.
  5. 基于触发器 RollingFileAppender将调用 rollover事件触发时。
  6. 翻转方法将调用appropriate compress method .

如您所见,所有内容都将在与记录数据相同的线程中进行记录和压缩。因此,您不应登录时间紧迫的线程。

就我个人而言,我认为在同一个线程中登录对于大多数应用程序来说并不重要,但这在很大程度上取决于您的环境、性能要求等。

如果你想异步记录数据,你可以使用AsyncAppender .在这种情况下,压缩也将在单独的线程中进行。

关于java - 用于在 Logback 中压缩日志文件的单独线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14930343/

相关文章:

java - 在 Java 中查找给定对话框源代码的有效方法

java - 我应该注入(inject)每个类或特定类吗?

java - 添加两个文本框值并自动在标签中显示总和

c# - 性能计数器平均计时器如何与其基数相关联?

performance - 包含跨语言基准的资源?

azure - 如何获取Windows Azure Portal中的用户日志?

java - 如何在 Android 中使用 IMAP/POP3 协议(protocol)获取邮件

python - 在python中有效读取没有分隔符的数字矩阵

python - 我怎样才能得到所有可能的日志级别的数组?

c++ - 图片处理代码调试