【问题标题】:Processing Of Logback's Compressed Rolled-Over FilesLogback 压缩滚动文件的处理
【发布时间】:2015-08-06 08:55:46
【问题描述】:

我已配置 LogBack,使其每小时滚动一次,创建一个文件,例如 log.20150806-10.log.zip。

在一个特殊的线程中,我想定期检查是否有新的翻转文件,如果有,请将它们上传到某个地方然后删除它们。

查看LogBack的Compressor.java的来源,它只是打开目标zip文件,开始写入并关闭它。

我认为我的线程可能会在 Compressor 完成写入文件之前发现该文件。

如果我不使用压缩,这可能不会有问题,因为那时只有文件重命名。

如何同步?

appender 和处理线程都运行在同一个 JVM 中。

【问题讨论】:

    标签: java synchronization logback


    【解决方案1】:

    我是这样处理这个问题的。

    • 我停止使用 LogBack 的压缩功能。这样,LogBack 通过重命名原始日志文件来创建新的翻转文件。在大多数平台上,文件重命名是原子操作。

    • 在一个单独的线程中,我正在检查目录中是否出现了新文件。一旦我看到一个新文件,我就可以立即处理它。

    • 我自己在做 ZIP 压缩。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-07
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 2013-12-27
      相关资源
      最近更新 更多