gpt4 book ai didi

java - Logback的压缩滚动文件的处理

转载 作者:行者123 更新时间:2023-11-30 08:01:33 26 4
gpt4 key购买 nike

我配置了 LogBack,以便每小时滚动创建一个文件,例如 log.20150806-10.log.zip。

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

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

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

如果我不使用压缩,这可能不会成为问题,因为这样就只是文件重命名。

如何同步?

追加器和处理线程都在同一个 JVM 中运行。

最佳答案

这是我处理这个问题的方法。

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

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

  • 我自己进行 ZIP 压缩。

关于java - Logback的压缩滚动文件的处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31851153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com