首页 > 代码库 > 写日志

写日志

已下为我自己写的一个写日志的类,比较简洁。

<?php
class Log
{
    /**
     * @Purpose      :  写日志
     * @Method Name  :  writeLog()
     * @parameter     :  string $explain          错误说明
     *                  string $error_location    错误位置
     *                  string $dir               保存日志的文件夹名
     * @return         :  (无)
     */
    function writeLog($explain,$error_location,$dir){
        if (empty($dir)) return false;
        $error_msg = "";
        if(strlen($explain) != 0){
            $error_msg .= ‘[‘.date("Y-m-d H:i:s",time()).‘ error_explain: ] ‘. $explain;
        }
        if(strlen($error_location) != 0){
            $error_msg .= ‘ [ error_location: ] ‘. $error_location;
        }
        if(! is_dir($dir)){
            mkdir($dir,0777);
            system("chown root.root {$dir} -R;chmod 777 {$dir} -R");    // 修改目录所有者,所属组和权限
        }
        $file_name = date(‘Y-m-d‘,time()).‘.txt‘;
        $file_name = $dir.$file_name;
        if(! $file_name == false){
            system("chown root.root {$file_name} -R; chmod 777 {$file_name} -R");
            $handle1 = fopen($file_name,‘w‘);
            fwrite($handle1,"//log file , please do not modify me! \n");
            fwrite($handle1,‘//Created on ‘.date(‘M j, Y, G:i‘,time())."\n");    // 类似于这种格式 :Created on Jun 26,2017, 11:22
            fclose($handle1);
        }
        if(is_file($file_name)){
            $handle2 = fopen($file_name,‘a‘);
            fwrite($handle2,"$error_msg \n");
            fclose($handle2);
        }
        /*
        最后打印出来的日志类似于这样:
        //log file , please do not modify me!
        //Created on Jun 26, 2017, 11:34
        [2017-06-26 11:34:29 error_explain: ] test_explain [ error_location: ] the error at E:\www\test\index.php line 55
        */
     }

    /**
     * @Purpose       :    获取错误所在位置
     * @Method  Name  :    getErrorLine()
     * @Parameters    :    string  $line    行号
     * @Return array  :    $error_line      错误所在位置
     */
    public function getErrorLine($line)
    {
        $error_line = __FILE__ . ‘ line ‘ . $line ;
        return ‘ ‘.$error_line;
    }
}
$Log = new Log();
$Log -> writeLog(‘test_explain‘,‘the error at‘ . $Log -> getErrorLine(__LINE__),‘E:/www/test/log/‘);

本文为原创作品,如有转载请注明出处http://www.cnblogs.com/chrdai/p/7082146.html

写日志