【发布时间】:2013-01-16 04:41:12
【问题描述】:
我正在构建一项服务,在其中记录来自多个来源的纯文本格式日志(每个来源一个文件)。我不打算轮换这些日志,因为它们必须永远存在。
为了使这些文件永远变小,我希望我可以对它们进行 gzip 压缩。由于它们是日志数据,因此文件压缩得很好。
在 Python 中编写仅附加的 gzip 压缩文本文件的好方法是什么,以便以后可以在服务开启和关闭时恢复写入?我并不担心丢失几行,但是如果 gzip 容器本身发生故障并且文件变得无法读取,那就不行了。
另外,如果不行,我可以简单地将它们写成纯文本,而不用 gzip 压缩,如果它不值得麻烦的话。
【问题讨论】:
-
即使您不打算轮换日志,为什么不中断输出并每隔一段时间启动一个新文件呢?然后你可以在文件完成后运行 gzip。
-
@DavidZaslavsky 的回答是传统的解决方案。这只是标准的日志轮换,只是您省略了删除旧文件的部分。