/* 保存错误日志两种方式 */
// 写入到文件当中
//1关闭display_error选项,确保错误不会显示到桌面
//2开启外部保存错误信息 log_error=On
//3设置错误保存的日志,文件位置Error_log=D:/error.log
//4 注意不要关闭错误报告级别error_reporting 错误级别报告的位置 同样会影响日志保存的级别
//5Error_log('提示信息');可以向日志当中写入自定义的错误
// 写入系统错误日志当中
//不推荐使用
/*
//打开你的php.ini
//将
//log_errors = Off
//改成
//log_errors = On
//将php.ini保存退出并重启web服务器
*/
//错误处理函数
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");//开启自定义错误日志