美文网首页php相关
PHP 日志的几个配置

PHP 日志的几个配置

作者: Devonon | 来源:发表于2017-04-06 15:50 被阅读108次

日志是一个可靠系统的重要保障之一。完整的日志记录,能够极大地帮助我们分析问题,排查错误。
在这里,介绍一下 PHP 的日志相关的一些配置和内容。

本文以 PHP 7 版本作为描述的基础。

基本

在 php.ini 配置文件中,有一个名为 display_errors 的配置,这个配置决定了是否显示错误信息。一般来说,在开发测试阶段,这个配置应该保持 On 以方便查看问题;当在线上时,这个应设置为 Off ,避免向用户显示出内部具体的错误信息。

比如我们直接在 CLI 里执行 php -r "echo 1 / 0;" ,当配置了 On 时,即可看见这样的错误信息:

➜ php -r "echo 1 / 0;"

Warning: Division by zero in Command line code on line 1

Call Stack:
    0.0001     349088   1. {main}() Command line code:0

INF

当然,如果我们在 Web 中运行该代码,也会显示类似错误。

实践

那当我们在线上将 display_errors 配置设为 Off 时,我们又怎样跟踪错误呢?这个时候,就要用到下面两个配置:

  • log_errors ,表示是否记录错误日志,默认为 Off 。当该值为 On 时,将使用下面的配置 error_log 的值作为日志文件。
  • error_log,指定日志文件。执行 PHP 代码的用户,需要有该文件的写权限。在 CLI 里执行 PHP 的用户与 PHP-FPM 的执行用户可能不同,请特别留意因为不同用户产生的文件写权限的问题。

现在我们把 log_error 设为 Onerror_log 设为 /tmp/log/php_errors.log,然后再次在 CLI 里执行 php -r "echo 1 / 0;",即可在指定的文件中查看到相关错误信息。

对于该日志文件,如果有需要可以使用 logrotate 来实现日志切割。

PHP-FPM

当我们使用 PHP-FPM 来运行 PHP 的时候,就要额外留意 FPM 里的配置。

  • catch_workers_output ,表示是否把 fpm worker 的 stderr 和 stdout 重定向错误日志中;
  • error_log,表示日志文件。

一般来说,默认配置情况下即可实现日志的记录。

参考

相关文章

  • PHP 日志的几个配置

    日志是一个可靠系统的重要保障之一。完整的日志记录,能够极大地帮助我们分析问题,排查错误。在这里,介绍一下 PHP ...

  • Laravel5.3 - config目录详解

    config/app.php 配置详解: 错误 & 日志 配置在使用log配置日志时:一般(daily)日志只能保...

  • 日志

    config/app.php 日志配置选项

  • 10.1.3 设置错误日志

    10.1.3 设置错误日志 1、先配置php.ini:error_reporting = E_ALL//将向PHP...

  • php日志配置

    /usr/local/lib/php.ini 日志级别 ;error_reporting = E_ALLerror...

  • Yii框架记录后台操作日志

    配置main.php 配置日志model和写入方法 可以了,只需要两步,操作时就能自动增加没个对数据库的操作日志,...

  • PHP 资源列表

    Awesome PHP 一个PHP资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库、配置工具、W...

  • 推荐Github上优秀的编程文档

    awesome-php-cn PHP 资源大全中文版,库、框架、模板、安全、代码分析、日志、第三方库、配置工具、W...

  • php-fpm的pool、php-fpm慢执行日志、 php-f

    php-fpm的poolphp-fpm的pool php-fpm慢执行日志 php-fpm慢执行日志 php-fp...

  • PHP日志

    一、php-fpm 慢日志 php慢日志需要在php-fpm.conf设置,旧的版本是在php-fpm.conf设...

网友评论

    本文标题:PHP 日志的几个配置

    本文链接:https://www.haomeiwen.com/subject/iujqattx.html