保存错误日志的两种方式

/* 保存错误日志两种方式 */

//          写入到文件当中 
//1关闭display_error选项,确保错误不会显示到桌面 
//2开启外部保存错误信息  log_error=On
//3设置错误保存的日志,文件位置Error_log=D:/error.log
//4 注意不要关闭错误报告级别error_reporting 错误级别报告的位置 同样会影响日志保存的级别 
//5Error_log('提示信息');可以向日志当中写入自定义的错误 


//         写入系统错误日志当中 
//不推荐使用
<?php 

/*
//打开你的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");//开启自定义错误日志

猜你喜欢

转载自blog.csdn.net/feiyucity/article/details/85259823