I think there are two reasons:
1. The team needs a unified format for easy administration of logs
2. A large number of useless error logs occupy hard disk space and only meaningful logs need to be logged.
Well, practice a bit.
1. Open your php.ini
2. Turn on the log record to
Log_errors = Off
Change into
Log_errors = On
3. Exit PHP.ini Save and restart the Web server
4. Add the following code to the front of your code
<?php//Error handler function MyErrorHandler ($errno, $errstr, $errfile, $errline) {$log _file = "./php_%s_log_". Date ("YMD") .". Log ";//define the file directory and file name $template = '; Switch ($errno) {case E_user_error: $template. = "User error level errors, the error number must be fixed [$errno] $errstr"; $template. = "Error location file $errfile, line $errline \ n"; $log _file = sprintf ($log _file, ' error '); Exit (1);//system exit break; Case e_user_warning: $template. = "User WARNING level error, recommended fix error number [$errno] $errstr"; $template. = "Error location file $errfile, line $errline \ n"; $log _file = sprintf ($log _file, ' warning '); Break Case E_user_notice: $template. = "User NOTICE level error, does not affect the system, does not fix error number [$errno] $errstr"; $template. = "Error location file $errfile, line $errline \ n"; $log _file = sprintf ($log _file, ' notice '); Break Default: $template. = "Unknown error type: error number [$errno] $errstr"; $template. = "Error location file $errfile, line $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");//Turn on the custom error log
5. Try writing the next error code after the code you just wrote
Echo 1/0;
See if you have one more log file under your defined path? :)
Note: Errors at the following levels cannot be handled by user-defined functions: E_error, E_parse, E_core_error, e_core_warning, E_compile_error, e_compile_warning, and in call set_ Most e_strict generated in the file where the Error_Handler () function is located.
However, when you turn on the error log system (Log_error = on in php.ini) and specify the system log file (also the error_log= path name in php.ini), and the error_reporting is turned on, The above errors will be recorded in the file you define as a system error log.
The above is all the content described in this article, I hope you can have a new understanding of PHP custom error log.