使用 Linux 自带的 logrotate 管理你的所有日志
我们在开发的过程中,会创建非常多的日志,对日志进行 rotate 是一个基本要求。
所谓的rotate
,可以理解为对日志按照一定的规则进行切分。例如,每天晚上0点生成一个新的日志文件,并把老的文件归档。又或者每个日志文件超过多少 MB 以后就自动切分,并把老的内容单独存档或者压缩。存档以后的日志文件保存多少个。超过数量以后先删除老日志再删除新日志。
如果我们使用的是 Python,那么我们可以使用自带的logging
模块或者第三方的logoru
来写日志。但如果我们使用像是 MongoDB这种第三方的软件,那么要对日志进行 rotate 就非常麻烦了。如果不加以管理,MongoDB 的日志很容易就达到几十GB。
还有其他软件,他们的日志散落在系统的各个位置,我们应该如何替他们 rotate 呢?