Home >Backend Development >PHP Tutorial >A brief discussion on php custom error log
I think there are two reasons:
1. The team needs a unified format of logs for easy management
2. A large number of useless error logs occupy hard disk space, and only meaningful logs need to be recorded.
Then, practice it.
1. Open your php.ini
2. Turn on logging and change
log_errors = Off
to
log_errors = On
3. Save php.ini, exit and restart the web server
4. Add at the front of your code The following code is as follows
<?php //错误处理函数 function myErrorHandler($errno, $errstr, $errfile, $errline) { $log_file = "./php_%s_log_".date("Ymd").".log";//定义日志文件存放目录和文件名 $template = ''; switch ($errno) { case E_USER_ERROR: $template .= "用户ERROR级错误,必须修复 错误编号[$errno] $errstr "; $template .= "错误位置 文件$errfile,第 $errline 行\n"; $log_file = sprintf($log_file,'error'); exit(1);//系统退出 break; case E_USER_WARNING: $template .= "用户WARNING级错误,建议修复 错误编号[$errno] $errstr "; $template .= "错误位置 文件$errfile,第 $errline 行\n"; $log_file = sprintf($log_file,'warning'); break; case E_USER_NOTICE: $template .= "用户NOTICE级错误,不影响系统,可不修复 错误编号[$errno] $errstr "; $template .= "错误位置 文件$errfile,第 $errline 行\n"; $log_file = sprintf($log_file,'notice'); break; default: $template .= "未知错误类型: 错误编号[$errno] $errstr "; $template .= "错误位置 文件$errfile,第 $errline 行\n"; $log_file = sprintf($log_file,'unknown'); break; } file_put_contents($log_file,$template,FILE_APPEND); return true; } $error_handler = set_error_handler("myErrorHandler");//开启自定义错误日志
5. Try writing an error code after the code just now
echo 1/0;
See if there is an extra log file under the path you defined? :)
Note: The following levels of errors cannot be handled by user-defined functions: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, and most E_STRICTs generated in the file where the set_error_handler() function is called.
However, when you enable the error logging system (log_error = on in php.ini) and specify the system log file (also error_log = path name in php.ini), and error_reporting is turned on, the above errors will occur. They will all be recorded in the file you define as a system error log.
The above is all the content described in this article. I hope everyone can have a new understanding of PHP custom error logs.
For more articles on PHP custom error logs, please pay attention to the PHP Chinese website!