我想为PHP和Nginx记录的每个错误添加URL。由于错误日志为我提供了相关的脚本,因此同一脚本用于具有不同数据源(远程API)的许多不同URL。
我认为此错误来自远程API的某些数据。拥有错误URL(由用户浏览)将帮助我确定有关的数据源。
Nginx
已启用Nginx错误日志,但仅记录与Nginx相关的错误(Google Pagespeed日志)。奇怪的是,在许多其他服务器上,Nginx日志包含Nginx和PHP错误。 (log format source)
nginx.conf
log_format main '$http_x_forwarded_for - $remote_user [$time_local] '
'"$request_method $scheme://$host$request_uri $server_protocol" '
'$status $body_bytes_sent "$http_referer" ["$host" - "$request"]'
'"$http_user_agent" $request_time';
PHP
如前所述,PHP日志包含PHP错误,但nginx log_format不适用于此。
php.ini
error_log = /var/log/php-errors.log
www.conf //I've never changed this on any server to manage logs
;php_flag[display_errors] = off
;php_admin_value[error_log] = /var/log/fpm-php.www.log
;php_admin_flag[log_errors] = on
Wordpress
启用Wordpress调试日志似乎会停止将错误输出到PHP错误日志。我通常会禁用此功能,因为Nginx包含所有为我的需求格式化的错误。
wp-config.php
define('WP_DEBUG', true);
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
最后,我不知道如何处理所有这些不同的日志配置。
通常:
先谢谢了。
答案 0 :(得分:0)
@misorude的评论帮助我解决了这个问题。
在我的error_log = /var/log/php-errors.log
中对php.ini
进行评论已解决了该问题。
就像@misorude所说的documentation:
如果未设置此伪指令,则将错误发送到SAPI错误记录器。例如,这是Apache或CLI中的stderr中的错误日志。
现在,所有PHP错误都记录到nginx错误日志中,并且会遵守nginx.conf中指定的log_format。随时支持@misorude评论!