完整的日志管理(python)

时间:2011-05-31 07:05:51

标签: python linux monitoring logging

已经提出了类似的问题,但我没有遇到过一种易于操作的方式

我们有一些填写空间的各种应用程序日志,我们还面临其他不需要的问题。如何编写监控脚本(压缩特定大小的文件,移动它们,观察它们等等)以进行此维护?我正在寻找一个简单的解决方案(如使用什么?),如果可能的话,在python中或者只是一个shell脚本。

感谢。

2 个答案:

答案 0 :(得分:7)

"标准"这样做的方法(至少在大多数Gnu / Linux发行版上)是使用logrotate。我在Debian机器上看到一个/etc/logrotate.conf,其中包含要旋转的文件和频率的详细信息。它由每日的cron条目触发。这就是我推荐的。

如果您希望您的应用程序本身执行此操作(这真的很痛苦,因为它不是它的工作),您可以考虑编写自定义log handler。 RotatingFileHandler(或TimedRotatingFileHandler)可能有效,但您可以编写自定义的。

默认情况下,大多数系统都设置为自动旋转syslog发出的日志文件。您可能需要考虑使用SysLogHandler并记录到syslog(来自所有应用程序而不管语言),以便系统基础结构自动为您处理事情。

答案 1 :(得分:0)

使用logrotate为您完成工作。

请记住,很少有可能无法正常工作的情况,例如,如果日志记录应用程序始终打开日志文件,并且如果删除并重新创建文件,则无法恢复日志文件。

多年来我遇到的应用程序很少,但即使对于它们,您也可以配置logrotate以在旋转日志时重新启动它们。