PHP中错误和异常的日志记录使用分析
本文分析了日志记录中PHP中错误和异常的用法,供您参考,如下所示:指错误日志Nginx + PHP服务,我们通常会想到一个nginx的访问日志,错误日志,和PHP错误日志。虽然它看起来像一个很简单的问题,其实有问题的应用程序配置和日志的位置。如果它安装在Ubuntu系统下的APT get系统中,其合理的配置文件是可用的,再次运行的应用程序中的配置也会影响日志记录的方式和内容。
误差与异常的区别
关于错误和异常,我们可以用一个简单的例子来理解:
< PHP
{试
1 0;
catch(异常E){ }
回声抓住
}
执行这个小例子,一个PHP警告:零划分为直接获得。错误的原因很简单:这是一个逻辑错误,没有例外,所以它不能被试。以同样的方式,没有这样的问题在一个变量的定义,和同样会造成一个警告而不是捕捉。
但这一问题已经改变了php7,例如,在上面的例子中,我将/改变~php7的环境中执行,会得到不同的提示。
PHP的致命错误:Uncaught DivisionByZeroError…
基于这个提示,如果我修改了catch中的条件,
< PHP
{试
1 0;
抓住(divisionbyzeroerror e){ }
回声抓住
}
这通常可以捕获到错误输出到。
在第一个例子中,你也可以捕获的破例如果你修改它errorexception。
至于为什么要冗余和分裂,它表明在PHP5的一致性。在php7(我的测试环境是7.0.4),分是不成问题的divisionbyzeroerror,这应该是错误的。
日志记录
PHP本身可以为以下几个日志配置:
PHP程序错误日志(在php-fpm进程的启动和终止的配置在php-fpm.conf,信息)
php-fpm慢日志(也配置在php-fpm.conf,记录执行缓慢)
PHP错误日志(配置php.ini,记录应用程序的错误日志)
此外,Nginx已经两配置日志:访问和错误日志,这些日志文件的功能不同,记录的内容是不同的,但有一点需要注意:如果日志位置php-fpm错误配置,但日志位置不可写(配置位置对,因为它会检查php-fpm启动),在适当的配置错误日志的情况下返回到CGI写nginx错误日志。
所以通常的方法是:
从1查看请求的状态代码。在nginx的访问日志
2。查看PHP错误日志和堆栈信息中的错误记录
三.看看是否有异常重启php-fpm的日志记录(如果核心或扩展问题的情况下)
但在少数情况下,您会发现没有日志记录将异常抛出到上面提到的程序中。
异常记录
异常与错误不同,严格地说,它是应用程序逻辑的例外,而不是错误,可以通过合理的过程逻辑手动触发,但在大多数情况下,也需要记录异常。例如,无法连接数据库或框架不正确使用,引发异常。我们需要记录地点问题并及时处理。
PHP提供两个函数来定制错误和异常的处理:
(1)set_error_handler
(2)set_exception_handler
所以你可以捕获所有异常的set_exception_handler功能注入方法记录。
独白是例外记录优秀的图书馆,是基于psr-3标准的实施。在Laravel和symfony的默认也用来记录例外。如果你需要它,你也可以考虑在自己的项目介绍。
有关感兴趣的读者的PHP相关内容的更多内容可以查看此主题:站点PHP错误和异常处理方法
希望本文能对PHP程序设计有所帮助。