thinkphp拆分出日志函数

在做ecshop时发现没有顺手的打印日志的地方,就去把thinkphp里输出日志的地方简单的拆了出来,代码如下:

/**
     * 日志直接写入
     * @static
     * @access public
     * @param string $message 日志信息
     * @param string $level  日志级别
     * @param integer $type 日志记录方式
     * @param string $destination  写入目标
     * @param string $extra 额外参数
     * @return void
     */
    function log_write($message,$level='debug',$type='',$destination='',$extra='') {
        $format = '[ c ]';
        $log_file_size = '2097152';
        $now = date($format);
        $type = $type?$type:3;
        if(3 == $type) { // 文件方式记录日志
            $log_path = ROOT_PATH . 'data/log/';
            if(!is_readable($log_path))  
            {  
                is_file($log_path) or mkdir($log_path,0700);  
            } 
            if(empty($destination))
                $destination = $log_path.date('y_m_d').'.log';
            //检测日志文件大小,超过配置大小则备份日志文件重新生成
            if(is_file($destination) && floor($log_file_size) <= filesize($destination) )
                  rename($destination,dirname($destination).'/'.time().'-'.basename($destination));
        }
        error_log("{$now} {$level}: {$message}\r\n", $type,$destination,$extra );
    }

备注下 error_log函数,发送一个错误信息到Web服务器的错误日志,一个TCP的端口或者是一个文件:
需要先开启,编辑php.ini,将log_errors设置为on:
log_errors = On,一般默认都开启了
可能的信息类型有以下几个:
0 message 发送到 PHP 的系统日志。 这是个默认的选项。iis服务器运行调试php程序错误信息生成log文件在哪里。
1 message 发送到参数 destination 设置的邮件地址。 第四个参数 extra_headers 只有在这个类型里才会被用到。
2 不再是一个选项。
3 message 被发送到位置为 destination 的文件里。 字符 message 不会默认被当做新的一行,而是追加到行末。
4 message 直接发送到 SAPI 的日志处理程序中。
destination 目标。它的含义描述于以上,由 message_type 参数所决定。
extra_headers 额外的头。当 message_type 设置为 1 的时候使用。 该信息类型使用了 mail() 的同一个内置函数。
返回值 成功时返回 TRUE, 或者在失败时返回 FALSE。
这里设置的就是3,将日志发送到文件里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值