我正在考虑迁移基于Apache的Drupal安装,但需要基于rsyslog的远程错误日志记录。 我们使用的是 Amazon EC2,error_log写入来来去去的实例的文件有点噩梦。 特别是,如果应用程序遇到PHP错误,我们需要在它们发生时立即看到它们。
假设我们使用的是nginx和php-fpm,如果我将以下内容放入fpm池定义中,它就可以工作:
error_log = /path/to/logs/error.log
因为如果我在 PHP 中这样做,它确实会转到/path/to/logs/error.log:
<?php
error_log('send this to our log');
?>
但是如果我将池设置为
error_log = syslog
据我所知,输出根本没有任何地方。 至少,我还没有弄清楚 Ubuntu 上的 rsyslog.conf 配置,该配置将收到任何输入。
使用 nginx 和 php-fpm 时获得集中式错误日志记录的最佳方法是什么? 我使用的是 Ubuntu 11.10,其中包含 php5-fpm 和 nginx 的打包版本。
nginx在这里无关。 我会推荐Drupal的系统日志模块。 把它放在上面,然后一切都进入系统日志,这将进入看门狗,这也捕获PHP错误。
PHP 也有一个原生的 syslog() 函数。
如果您使用的是 syslog-ng,我认为您可以将普通的 php 日志路由到 syslog 中,但我从未听说过能够执行 error_log = syslog。