有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Logback压缩翻滚文件的java处理

我已经配置了LogBack,以便它每小时滚动一次,创建一个文件,比如log。20150806-10.日志拉链

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

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

我想我的线程可能会在压缩器完成写入之前发现该文件

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

我如何同步这个

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


共 (1) 个答案

  1. # 1 楼答案

    我是这样处理这个问题的

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

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

    • 我自己在做拉链压缩