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

dev*_*llo 11 python logrotate log-rotation

Python有自己的RotatingFileHandler,它应该自动旋转日志文件.作为Linux应用程序的一部分需要每隔几周/几个月旋转它的日志文件,我想知道它是否与配置文件logrotate.d和使用WatchedFileHandler相反的任何不同.

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

gon*_*opp 8

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

如果您正在创建桌面应用程序并且不能期望大多数用户阅读日志,则应该为他们处理.不仅可以旋转,还可以删除旧的 - 您不想填充可怜的用户的硬盘!

另一方面,如果观众是经验丰富的UNIX系统管理员,您将不得不采取不同的方法.

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

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

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


mbr*_*eis 5

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

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