python - Python 日志轮换的 RotatingFileHandler 和 logrotate.d + WatchedFileHandler 之间有区别吗?

标签 python logrotate log-rotation

Python 有它自己的 RotatingFileHandler,它可以自动轮换日志文件。作为需要每隔几周/几个月轮换一次日志文件的 Linux 应用程序的一部分,我想知道它是否与在 logrotate.d 中使用配置文件并使用 WatchedFileHandler 代替。

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

最佳答案

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

如果您正在创建一个桌面应用程序并且不能期望大多数用户阅读日志,您应该为他们处理它。不仅轮换,而且删除旧的 - 你不想要填满可怜用户的硬盘!

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

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

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

最后。 tdelaney 提出了一个重要的观点:标准的 FileHandler 并不太关注它正在写入的文件。你应该使用 WatchedFileHandler ,这是专门为此目的而写的

关于python - Python 日志轮换的 RotatingFileHandler 和 logrotate.d + WatchedFileHandler 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104675/

相关文章:

python - 使用 def 函数时无法在 Python 中打印变量

python - 尝试在 Fedora 21 上安装 PythonMagic 0.9.11 时出错

c - 日志记录与 logrotate 兼容

mysql - MySQL 是否会就地轮转日志?

linux - 为什么 rsyslog 在 logrotate 之后启动失败?

linux - 如何在 Linux 中创建 logrotate

Python:如何为嵌套列表返回具有特定格式的字符串

python - 在 unittest 中更改日志级别

linux - log rotate 不拆分文件并减少它

macos - 使用 newsyslog 轮换日志文件,但前提是它们具有一定大小