我想为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 );
最后,我不知道如何处理所有这些不同的日志配置。
通常:
提前致谢。
@misorude评论帮助我解决了这个问题。
在我的error_log = /var/log/php-errors.log
评论php.ini
解决了这个问题。
正如@misorude所说的documentation所说:
如果未设置此指令,则会将错误发送到SAPI错误记录器。例如,它是Apache中的错误日志或CLI中的stderr。
现在,所有PHP错误都记录在nginx错误日志中,并且遵循nginx.conf中指定的log_format。随意赞成@misorude评论!