我正在使用APC运行php5 FPM作为操作码和应用程​​序缓存。和往常一样,我正在将php错误记录到文件中。

由于这变得很大,因此我尝试配置logrotate。它可以工作,但是轮换后,php仍会继续登录到现有的日志文件,即使重命名也是如此。这导致scripts.log为0B文件,而scripts.log.1继续增长。

我认为(尚未尝试过)在postrotate中运行php5-fpm reload可以解决此问题,但这每次都会清除我的APC缓存。

有人知道如何使其正常工作吗?

最佳答案



这可能是您要寻找的。取自:How does logrotate work? - Linuxquestions.org

如我的评论所述,您需要防止PHP写入同一文件(重命名)。复制文件通常会创建一个新文件,而截断也是该选项名称的一部分,因此我想,copytruncate选项是一个简单的解决方案(from the manpage):



也可以看看:

  • Why we should use create and copytruncate together?
  • 关于php - 如何使用PHP日志配置logrotate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14145812/

    10-11 19:28