Python 有它自己的 RotatingFileHandler
,它可以自动轮换日志文件。作为需要每隔几周/几个月轮换一次日志文件的 Linux 应用程序的一部分,我想知道它是否与在 logrotate.d
中使用配置文件并使用 WatchedFileHandler
代替。
它们的运作方式有什么不同吗?一种方法是否更安全、更有效或被认为优于另一种方法?
最佳答案
您的计划的目标受众是什么?
如果您正在创建一个桌面应用程序并且不能期望大多数用户阅读日志,您应该为他们处理它。不仅轮换,而且删除旧的 - 你不想要填满可怜用户的硬盘!
另一方面,如果听众是经验丰富的 UNIX 系统管理员,您将不得不采取不同的方法。
系统管理员将需要您无法预料的功能。通过电子邮件发送它们,将它们写入仅附加存储,随您便。对于这些受众,您的日志记录最好尽可能灵活。灵活(在 UNIX 中)意味着简单 - 所以只需写入文件并认为它已完成。
此外,系统管理员不想重新学习如何重新进行日志记录。即使您想提供这种功能,也要确保默认值在此假设内是合理的。
最后。 tdelaney 提出了一个重要的观点:标准的 FileHandler
并不太关注它正在写入的文件。你应该使用 WatchedFileHandler ,这是专门为此目的而写的
关于python - Python 日志轮换的 RotatingFileHandler 和 logrotate.d + WatchedFileHandler 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104675/