将URL添加到错误日志(Wordpress,Nginx,PHP7)

时间:2018-09-06 11:03:37

标签: php wordpress nginx logging error-handling

我想为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 );

最后,我不知道如何处理所有这些不同的日志配置。

通常:

  • 我的nginx日志包含PHP和Nginx日志,因此我能够从nginx配置文件管理log_format。

先谢谢了。

1 个答案:

答案 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评论!