PHP自定义错误日志简介

通常,我经常读PHP的错误日志。我自己写日志的机会很小。我读了王健最好的日志练习。我认为有必要编写一个清晰而结构化的日志。

在写日志之前,我们问自己:为什么有时候我们必须记录一个自定义日志而不是使用系统默认日志记录模式

我想有两个原因:

1。团队需要一个统一的格式来管理日志。

2。大量无用的错误日志占用硬盘空间,只记录有意义的日志。

所以,练习吧。

1。打开php.ini

2。打开日志记录,将

复制代码代码如下所示:

log_errors =关闭



改变

复制代码代码如下所示:

在log_errors =



三.保存php.ini并重新启动Web服务器

4。在代码前面添加以下代码

复制代码代码如下所示:

< PHP

错误处理函数

功能myerrorhandler($ errno,errstr美元美元美元,errfile,errline)

{

log_file美元= , / php_ % s_log_。日期(旗下)。;定义日志文件目录和文件名

模板=;

开关($ errno){

案例e_user_error:

为模板错误的用户级别的错误,错误代码{ $ errno } errstr美元必须修复;

为模板位置错误的文件errfile美元,美元的errline ;

log_file美元= sprintf(log_file美元,错误的);

出口(1);退出系统

打破;

案例e_user_warning:

为模板警告用户级别的错误,错误代码{ $ errno } errstr美元建议修复;

为模板位置错误的文件errfile美元,美元的errline ;

log_file美元= sprintf(log_file美元,'warning);

打破;

案例e_user_notice:

为模板-通知用户级别的错误,不影响系统,无法修复的错误数{ } errstr美元美元的错误;

为模板位置错误的文件errfile美元,美元的errline ;

log_file美元= sprintf(log_file美元,'notice);

打破;

违约:

为模板-未知错误类型:{ }为errno错误号errstr美元;

为模板位置错误的文件errfile美元,美元的errline ;

log_file美元= sprintf(log_file美元,'unknown);

打破;

}

file_put_contents(log_file美元,美元的模板,file_append);

返回true;

}

error_handler美元= set_error_handler(myerrorhandler );/ /打开自定义错误日志



5。试着在代码后面写一段错误代码。

回声1 0;

查看在定义的路径中是否有日志文件:)

注:以下级别的错误不能由用户定义函数解决:e_error,e_parse,e_core_error,e_core_warning,e_compile_error,e_compile_warning,和set_error_handler(e_strict)在调用函数在文件最。

但当你打开错误日志系统(php.ini log_error =上)并指定日志文件系统(error_log =路径名称也是PHP INI),和error_reporting开放后,更多的错误会在你定义文件系统错误日志记录。

以上是本文的全部内容,希望您对PHP自定义错误日志有一个新的了解。