对于Python日志轮换,RotatingFileHandler和logrotate.d + WatchedFileHandler之间有区别吗?

时间:2015-03-17 16:34:13

标签: python logrotate log-rotation

Python有自己的RotatingFileHandler,它应该自动旋转日志文件。作为需要每隔几周/几个月轮换一次日志文件的linux应用程序的一部分,我想知道它是否与在logrotate.d中使用配置文件并使用{{1相反。

他们的运作方式有什么不同吗?一种方法更安全,更有效,还是被认为优于另一种方法?

2 个答案:

答案 0 :(得分:6)

您的计划的目标受众是什么?

如果您正在创建桌面应用程序,并且大多数用户都不能阅读日志,则应该为他们处理。不仅可以旋转,还可以删除旧的那些 - 你不想填补穷人的硬盘!

另一方面,如果观众是经验丰富的UNIX系统管理员,那么您必须采取不同的方法。

系统管理员需要您无法预料的功能。通过电子邮件发送,将其写入仅附加存储,您可以将其命名。对于这些受众,如果您的日志记录尽可能灵活,那将是最好的。灵活(在UNIX中)意味着简单 - 所以只需写入文件并考虑完成。

此外,系统管理员不想重新学习如何重新登录。即使您想提供此类功能,也要确保默认值在此假设范围内是合理的。

最后。 tdelaney提出了一个重点:标准FileHandler并没有过多地关注它所写的文件。您应该使用专门为此目的编写的WatchedFileHandler

答案 1 :(得分:1)

RotatingFileHandler允许日志文件长大到N,然后立即自动旋转到新文件。

logrotate.d通常每天运行一次。如果要限制日志文件的大小,logrotate.d不是最有用的,因为它只是定期运行。