Talking about PHP custom error log, talking about PHP customization
Usually read PHP error log, very few opportunities to write their own log, read Wang Jian's "Best log Practice" feel that writing a clear, structured log is very necessary.
Before we write the log, we ask ourselves: why do we sometimes have to record custom logs? Without the system default logging mode?
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
Copy the Code code as follows:
Log_errors = Off
Change into
Copy the Code code as follows:
Log_errors = On
3. Exit PHP.ini Save and restart the Web server
4. Add the following code to the front of your code
Copy CodeThe code is as follows:
<?php
Error handling functions
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.
http://www.bkjia.com/PHPjc/958259.html www.bkjia.com true http://www.bkjia.com/PHPjc/958259.html techarticle Talking about PHP custom error log, talking about PHP custom often read PHP error log, very few opportunities to write their own log, saw Wang Jian's "Best log Practice" feel write a ...