黑夜路人的干货-转载

php.ini 跟错误相关的选项:

error_reporting;

display_errors;

一般在线下开发调试环境,为了便于调试,会打开错误显示选项,在线上为了不泄露敏感信息,一般会吧 display_errors 设置为Off。

log_errors;

用于调试线上错误

log_errors=on

error_log

打开了log_errors 选项的同时,也要设置错误日志记录的目录选项 error_log :

错误抛出和处理

trigger_error、set_error_handler、set_exception_handler 这三个api主要就是处理错误抛出和处理内置函数

trgger_error 可以触发一个错误

E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE 三种级别的错误,

set_error_handler 说我们发生了错误的时候,用什么处理函数来处理,一般这个都是用来针对 trigger_error 之后来进行错误处理的,两个函数结合,我们可以构建一个简单有效的错误识别和记录的功能。

Set_exception_handler 跟 set_error_handler 类似,不过 Set_exception_handler 是用来处理出现未捕获的异常之后需要调用的处理方法。

如果使用了错误抑制符, 会导致引用传参失败[4](为什么会失败?)

日志记录除了PHP解析级别的错误,更多是我们程序在执行过程中的一些错误,比如 文件资源打开错误(文件不存在、没有权限、文件格式不正确)、远程服务资源访问失败(网络不通、协议不正确、用户名密码错误)等等,要知道,任何你认为不会出错的地方都可能隐藏着错误,所以务必多多的输出Log。

写log大抵都是几个常用的文件操作API,比如 fopen/fwrite,或者是一步到位的 file_put_contents。另外,PHP为了便于写日志,还提供了一个专门的接口:error_log

我们就是需要借助一些工具来查看生成的文件来发现性能问题,一般查看cachegrind数据文件的工具在Windows上有 WinCachegrind、在Linux上有 KCachegrind、还有直接Web查看的 Webgrind。

发表评论

电子邮件地址不会被公开。 必填项已用*标注