我正在考虑迁移基于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的打包版本。
答案 0 :(得分:0)
nginx在这里是无关的。我推荐Drupal的syslog模块。把它放在上面,然后一切都转到syslog,它会转到看门狗,它也会捕获PHP错误。
PHP也有一个本机的syslog()函数。
如果您正在使用syslog-ng我认为您可以将正常的php日志路由到syslog中,但我从未听说过能够执行error_log = syslog。