PHP创建日志记录(已封装)

 1 <?php
 2 
 3 class Logs{
 4     private $_filepath;   //文件路径
 5     private $_filename;   //文件名
 6     private $_filehandle; //文件引擎
 7 
 8 
 9      public function Logs($dir = null,$filename = null){
10      
11      $this->_filepath = empty($dir) ? ‘‘: $dir;
12      $this->_filename = empty($filename) ? date(‘Y-m-d‘,time()).‘.log‘ : $filename;
13     
14     //创建路径
15      $path = $this->_createPath($this->_filepath,$this->_filename);
16 
17      if(!$this->_isExist($path)){//如果日志目录不存在
18 
19         if(!empty($this->_filepath)){  //如果路径不存在
20  
21           if(!$this->_createDir($this->_filepath)){//创建路径
22            die("创建日志目录不成功");
23           }
24         }
25 
26         if(!$this->_createLogFile($path)){//创建日志
27          die("创建日志文件不成功");
28         }
29      }
30     
31 
32      $path = $this->_createPath($this->_filepath,$this->_filename);
33      //创建日志文件
34      $this->_filehandle=fopen($path,"a+");
35      }
36     
37     
38      public function setLog($log) //写日志
39     {
40          //写日志
41          $str = "";
42          if(is_array($log)){
43             foreach($log as $k => $v){
44                $str .= $k." : ".$v."\n";
45             }
46          }else{
47             $str = $log."\n";
48          }
49         
50         
51         if(!fwrite($this->_filehandle,$str)){//写日志
52             die("写日志错误");
53         }
54      }
55     
56     
57      private function _isExist($path){
58      return file_exists($path);
59      }
60     
61     
62      private function _createDir($dir){   
63          return is_dir($dir) or ($this->_createDir(dirname($dir)) and mkdir($dir, 0777));
64      }
65     
66     
67      private function _createLogFile($path){   
68          $handle=fopen($path,"w"); //
69          fclose($handle);
70          return $this->_isExist($path);
71      }
72     
73     
74      private function _createPath($dir,$filename){
75         if(empty($dir)){
76         return $filename;
77         }else{
78         return $dir."/".$filename;
79         }
80      }
81     
82     
83      function __destruct(){
84      //关闭日志
85      fclose($this->_filehandle);
86      }
87  }
88 ?>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。