thinkphp拆分出日志函数

原创 2016年08月30日 17:16:26

在做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,将日志发送到文件里。

log日志拆分

  • 2013年02月22日 11:42
  • 115KB
  • 下载

log4j 日志限制大小 拆分成30个 不按日期分日志 按大小拆分 按日期产生

先说一下按日期产生,不解释,大家都懂,这种方法的缺点就是很吃硬盘空间 log4j.rootLogger=INFO,logfile,stdout log4j.logger.java.sql=...
  • hjm4702192
  • hjm4702192
  • 2014年04月22日 10:11
  • 3316

linux下日志切分

tomcat默认生成catalina.out文件,随着运行时间越来越长,文件也越来越大,所带来的坏处有: 1.查询日志困难 2.占存储空间大 3.难以删除旧日志 在此介绍一种方法,通过cron...
  • qq_22986065
  • qq_22986065
  • 2016年08月30日 10:01
  • 827

对于大日志包进行分割的N种方法

对于大日志包进行分割的N种方法 (源自:杨志刚 博客 http://yangzhigang.cublog.cn) 前言:    网站一个主要域名的日志包,解压缩之后有10多个G,当日志分析系...
  • wind0513
  • wind0513
  • 2010年09月08日 16:29
  • 9731

logback日志配置及日志分离

在java项目中,一般用到的日志框架log4j,logback,在对比两者的使用上我更倾向于使用logback,因为在我看来logback配置更加简单和效率,项目中日志记录的完整能够帮助我们更好的分析...
  • Alven1212
  • Alven1212
  • 2017年04月01日 17:25
  • 2100

整数日期拆分出年月日

wYear=uDate/10000,  byMon= uDate%10000/100, byDay= uDate%100
  • fanhh
  • fanhh
  • 2012年01月11日 11:52
  • 1061

拆分多个字符串放入对应的容器程序代码

描述如下: 若干个虚拟机以“2#1c#10G#1M"标识,现需要拆分每个字符串标识,按照#拆分,放到对应的容器中,代码如下: import java.util.ArrayList; import ...
  • limm33
  • limm33
  • 2017年02月04日 08:31
  • 495

完整的拆分nginx访问日志

filter { grok { match =>[ "message","%{IPORHOST:clientip} \[%{HTTPDATE:tim...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2016年09月07日 11:38
  • 797

thinkphp拆分出日志函数

thinkphp拆分出日志函数r
  • hjx_dou
  • hjx_dou
  • 2016年08月30日 17:16
  • 298

关于Thinkphp的日志写入

一、配置文件TP通过配置文件对日志进行设置.要开启日志记录,必须在配置中开启LOG_RECORD参数,以及可以在项目配置文件中配置需要记录的日志级别'LOG_RECORD' =>...
  • zhao0829wang
  • zhao0829wang
  • 2015年07月31日 10:25
  • 8285
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:thinkphp拆分出日志函数
举报原因:
原因补充:

(最多只允许输入30个字)