CI 记录日志到mysq数据库

将system/Core下的Exceptions和log 复制到application/core下进行修改,前缀改为MY,分别在两个类中加入静态变量,将所有的错误写到静态变量中,要开启记录中的log内容,需要在config中配置log_threshold为1或者更大,默认不记录任何日志,在用到的地方用load_class去加载,在程序报错的时候,在本类或者基类中实现__destruct的魔术方法,__destruct这个方法的作用是在die之后执行的方法,所有在die之后把错误给拿到,存入mysql的json数据需要addslashes将特殊字符转义,然后存入数据库,通知开发人员来修改,以下是代码

/**
     * 将错误记录到mysql数据库中
     */
    function __destruct()
    {
        $data['username'] = $this->config->item('run_error_log_username');
        $data['password'] = $this->config->item('run_error_log_password');
        $data['create_time'] = $this->log_info['addtime'];
        $data['request'] = addslashes(json_encode($this->log_info));
        $log_model = load_class('Log','core');
        $data['log'] = addslashes(json_encode($log_model::$_log_list));
        $exceptions_model = load_class('Exceptions', 'core');
        $data['exception'] = addslashes(json_encode($exceptions_model::$message_list));
        $urlcon= $this->config->item('run_error_log_url');
        $host = $urlcon;
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_URL,$host);
		curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
		$output = curl_exec($ch);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值