In the process of learning PHP, in addition to the learning of code, the most important thing is the learning of logs, especially the analysis and query learning of logs.
As a programmer, something a little more important than coding is log analysis and query. Common logs and setting methods are listed below.
php slow log needs to be set in php-fpm.conf. If you use the source package to install by default, please execute the following command
cp php-fpm.conf.default php-fpm.conf
The default is through the source package The directory for compiling and installing PHP should be under the
/usr/local/php
directory. If you install through yum or other methods and do not know or do not know the specific PHP installation directory, you can use
find / -name php-fpm.conf
or
php -i | grep Path ------------------------------------------ [root@xxxx etc]# php -i | grep Path Configuration File (php.ini) Path => /usr/local/php/etc XPath Support => enabled Path to sendmail => /usr/sbin/sendmail -t -i [root@xxxx etc]#
The old version is set in php-fpm.conf (actually I forgot which version). After compiling the php7.x version source code package, you need to modify the slow query configuration in www.conf
vim /usr/local/php/etc/php-fpm.d/www.conf
But the configuration items are the same. If you can’t find it in php-fpm.conf, go to its sibling directory php-fpm.d and look for it.
; The log file for slow requests ; Default Value: not set ; Note: slowlog is mandatory if request_slowlog_timeout is set ;slowlog = log/$pool.log.slow ; The timeout for serving a single request after which a PHP backtrace will be ; dumped to the 'slowlog' file. A value of '0s' means 'off'. ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) ; Default Value: 0 ;request_slowlog_timeout = 0
slowlog Set the slow query log generation directory
request_slowlog_timeout Set the standard time for slow query (turning on this configuration is equivalent to turning on slow query) Query log), the configuration is in seconds, generally set to 3s.
In the production environment, php is not allowed to report errors. Even if the error is reported, it will be a white screen or 500, so log collection in the production environment is very important.
Generally, the configuration of php error log is in the php.ini file
/usr/local/php/etc/php.ini --------------------------- error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT display_errors = Off log_errors = On ; Log errors to specified file. PHP's default behavior is to leave this value ; empty. ; http://php.net/error-log ; Example: ;error_log = php_errors.log ; Log errors to syslog (Event Log on Windows). ;error_log = syslog
error_log error log generation directory
error_reporting The production environment error level should be fully turned on
display_errors Do not display errors on the page
log_errors Turn on the error log
The final result is
error_log = /var/log/php_error.log display_errors = Off error_reporting = E_ALL log_errors = On
Related recommendations:
PHP writing log function, php log function
Introduction to error logs, binlog logs, query logs, and slow query logs in Mysql
The above is the detailed content of How to set up two logs in PHP. For more information, please follow other related articles on the PHP Chinese website!