将错误信息记录到日志文件

来源:互联网 发布:这样才能成为网络歌手 编辑:程序博客网 时间:2024/04/25 08:06
自定义一个函数,可以将错误信息记录到文件,如下:
/**
 * 记录第三方平台操作的错误信息
 * @author YJ 2016-05-19
 * @param unknown $msg    要记录的错误信息
 * @param string $destination 存放错误日志的目录
 */
function writeLog($msg, $destination='./errorLogs/'){
    static $_PUT = null;
    $destination .= date('Y_m_d').'.log';
    // 自动创建日志目录
    $log_dir = dirname($destination);
    if (!is_dir($log_dir)) {
        mkdir($log_dir, 0777, true);
    }

    $method = $_SERVER['REQUEST_METHOD'];    // 请求类型
    switch(strtolower($method)) { // 获取提交的参数
        case 'get'     :
            $input = & $_GET;
            break;
        case 'post'    :
            $input = & $_POST;
            break;
        case 'put'     :
            if(is_null($_PUT)){
                parse_str(file_get_contents('php://input'), $_PUT);
            }
            $input = $_PUT;
            break;
        default:
            $input = null;
            break;
    }
    $str = '请求时间:'.date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']).' '.'客户端IP:'.$_SERVER['REMOTE_ADDR'].' '.'请求类型:'.$method.' ';
    $str .= '请求地址:http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].PHP_EOL;
    $str .= '请求参数:'.http_build_query($input).PHP_EOL;
    $str .= '响应结果:'.$msg.PHP_EOL.PHP_EOL;
    error_log($str, 3, $destination);    
}

函数调用示例:
writeLog('操作失败!');

1 0
原创粉丝点击