logrotate与Apache的rotatelogs的优缺点是什么?

Apache提供了一个名为rotatelogs的工具,它具有在旋转logrotate时发生的不重启Apache的好处。 我没有足够的经验可以说,如果这是足够的标准使用rotatelogs over logrotate。

我的问题是任何人都有使用这两种工具的真实生活经验,你的意见是什么?

你会推荐什么?为什么?

我会推荐logrotate为大多数人,因为这将是旋转所有其他日志(吻:保持简单愚蠢)。 Logrotate不会重新启动所有的Apache,而只是向它发送一个信号,告诉它重新打开所有的日志文件并重新启动子项。 这个信号可以是SIGHUP,这会导致孩子马上重新启动(这会中断下载),或SIGUSR1,它会正常重启。 使用SIGUSR1,您必须延迟日志处理,直到您认为所有的孩子都会自然死亡。 无论哪种方式,您可能都希望分析您的日志,并在一天或一周内为时间最短的stream量时间。

pipe道日志似乎是更强大的解决scheme。 一个很大的好处就是它可以让你使用一个集中的日志logging系统并承担networking服务器本身的负担。 手册本身说:

与条件日志一样,pipe道日志也是一个非常强大的工具,但是在脱机后处理等简单解决scheme可用的情况下,不应该使用它。

显然,不要使用pipe道日志,如果你不需要它。 过去我使用pipe道login作为过滤日志的方式,并没有问题。

我以前都用过。 我发现使用rotatelogs是一个非常有用的工具来pipe理访问日志,如果你不想要Apache停机时间。 在一个大容量的网站上,我会推荐这个,我发现唯一的问题是,如果你想pipe理日志,你将需要一个单独的脚本cron'd清理或移动日志到备份服务器,显然这取决于要求。 随着logrotate你有更多的select,如何处理日志文件,唯一的问题是当logrotate运行如前面的答案解释,您将需要重新启动Apache。

基本上,这一切都归结于select,如果你需要apache运行没有中断,然后用一个外部的cron脚本rotatelogs来pipe理,否则logrotate就足够了。 当你的stream量很高的时候,确保设置logrotate cron不要旋转日志。

最后,如果你想有一个Apache日志到你的系统日志,你总是可以使用RedHat基于linuxes上的logger命令。