首页 > 技术分享 > 原生PHP
收藏

PHP错误机制详解,自定义PHP错误日志

04/17 17:08
大潇博客 原创文章,转载请标明出处

众所周知,PHP在运行错误代码时,会显示出错误类型及错误大概的位置,但不同的错误会有也会有不同的提示,这个叫做PHP的错误级别,PHP共有以下几种错误级别:

在遇到这些错误时,PHP会运行自己的错误机制,报告错误原因以及错误位置,如果我们不想让PHP运行自己默认处理错误的方式,我们可以使用一个函数:set_error_handler(errorhandler,E_ALL|E_STRICT);

在这个函数中有两个必须的参数,第一个代表自定义错误处理函数的函数名称,第二个代码出发错误函数的错误级别,这里我们只能填写上图所示的第一、第二个错误级别,即:E_WARNING、E_NOTICE(原因请看文章结尾)

例如我要打开一个aaa.txt的文件,但是aaa.txt这个文件不存在,所以肯定会报一个warning的错误,提示文件不存在。如果我想让错误提示信息按照我的意愿表述,处理方法请看下图:

所得结果如图所示:

上面的错误编号为第一张图片中的错误“值”,错误信息输出的是错误的详细信息

处理错误的执行流程如下图:



上面所讲是系统发现代码运行错误,并且做出提示的。

有一种特殊情况,是我们根据某些条件的不满足,自己定义出一个错误,这个错误同样会被PHP捕获到,并且运行PHP的默认处理错误的方式,不过我们也可以自定义这种错误的处理方法

首先使用trigger_error(errormsg,errortype);函数定义为系统错误,第一个参数表示错误提示信息,第二个表示错误级别。然后使用set_error_handler(errorhandler,E_ALL|E_STRICT);函数,这时这个函数的第二个参数只能使用三个参数,分别是:E_USER_WARNING、E_USER_NOTICE、E_USER_ERROR

例如我需要输入一个年龄,如果年龄大于100岁,则视为warning错误,同样我也要自己定义这个错误的处理方法,如下图:

错误处理流程:


既然我们能捕获到错误信息,根据这个道理,我们把错误信息保存到记事本中,便可以自定义记录错误日志了.
方法一,如下图代码:


方法二,PHP有专门的错误日志函数,error_log(message,type,destination,headers),其中四个参数的用法是:
message:应该被记录的错误信息;
type:错误处理方法,保存到本地并且一直在结尾追加错误信息,参数为3
destination:错误保存日志
实现方法如下图代码:

打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311