如何按日期分隔 php 日志


How can I separate php log by date?

这是我在每个域上的实际配置vhost conf

<VirtualHost *:80>
   ...
   php_value error_log /var/log/php-logs/domainName/error.log
   ...
</VirtualHost>

我该怎么做才能保留此路径(每个域一个目录),但按天(20131218.log20131219.log等而不是错误.log)拆分 php 日志?

Wrikken(见评论)建议简单地使用 logrotate - 但为了使其正常工作,您需要关闭并重新打开引用日志的每个文件句柄 - 如果您使用的是已经为 Apache 配置了 logrotate 的 Linux 发行版,并且通过 mod_php 调用 PHP,并且您不介意服务中断,那么您只需要将此文件添加到为 Apache 轮换的日志中。但是如果你想保持你的服务器运行,或者你正在使用php-fpm,这就会变得非常混乱。但是您没有告诉我们有关Web服务器,操作系统或SAPI版本的信息。

其他解决方案

  • (在 Linux/Unix/BSD 上)使用系统日志记录守护进程 (error_log=syslog) 并配置它来轮换日志

  • 在 Apache 上,如果未设置 ini error_log,则错误将发送到 stderr,Apahce 将这些错误写入其错误日志:您可以将其配置为通过自动轮换日志的捆绑过滤器运行