PHP自动记录站点所有错误异常到日志文件

我希望我的网站自动记录所有的、未处理异常到日志,方便即时查看,找出错误的问题,请问要如何实现?
已邀请:
匿名用户

匿名用户

赞同来自:

  PHP中有一个set_exception_handler()函数,用于将设置用户定义的异常处理函数。自定义一个函数,将错误信息写入到日志文件,再将此自定义函数设置到set_exception_handler()的参数里面即可:
<?php
date_default_timezone_set('PRC');

//记录日志函数
function writelog($filename, $msg) {
    $file = dirname(__FILE__) . '/logs/' . $filename . date('Ym') . '.log';
    !is_dir(dirname($file)) && mkdir(dirname($file), 0777, true);
    $handle = fopen($file, 'a');
    flock($handle, LOCK_EX);
    fwrite($handle, sprintf("%s %s\r\n", date('Y-m-d H:i:s',time()), $msg));
    flock($handle, LOCK_UN);
    fclose($handle);
}

// 用户定义的异常处理函数,用于将未处理的异常记录到日志
function exception_handle( $e ) {
    writelog('error', $e->getMessage());
}
set_exception_handler("exception_handle");

//抛出一条异常信息试试
throw new Exception("这是一个异常测试信息");

要回复问题请先登录注册