记录日志的三种方式

在PHP中主要有三种设置记录日志的方式:

  • 代码中ini_set()方法
  • php-fpm.conf中的配置
  • php.ini中的配置

其三种配置的优先级ini_set()>php-fpm.conf>php.ini

常规配置

  1. php-fpm的日志主要配置php-fpm.conf, vim /usr/local/php/etc/php-fpm.conf

    1. ; 设置,没有则新增
    2. catch_workers_output = yes
    3. error_log = /var/log/php/php_errors.log
    4. ; 确保注释如下选项,或者和php.ini中二者选其一
    5. ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
    6. ;php_flag[display_errors] = off
    7. ;php_admin_value[error_log] = /var/log/fpm-php.www.log
    8. ;php_admin_flag[log_errors] = on
    9. ;php_admin_value[memory_limit] = 32M
  2. 配置php.ini, vim /usr/local/php/lib/php.ini

    1. display_errors = off
    2. log_errors = On
    3. error_log = "/var/log/php/php_errors.log"
    4. error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
  • display_errors = off,表示不显示错误信息(不输出到页面或屏幕上)
  • log_errors = On,表示记录日志到文件
  • error_log = “/var/log/php/php_errors.log”,表示错误日志记录文件名
  • error_reporting=E_ALL,表示捕获所有错误信息,错误、提醒、警告等
    • error_reporting = E_ALL & ~ ( E_NOTICE | E_DEPRECATED | E_STRICT),表示记录所有error信息,不记录提醒、弃用提醒等
    • error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR|E_WARNING,表示记录E_COMPILE_ERROR或E_RECOVERABLE_ERROR或E_ERROR或E_CORE_ERROR
  1. 修改了php-fpm,则需要重启php-fpm
    1. php-fpmr