1. class Log { 
  2.  
  3.     //建一个常量,代表日志文件的名称 
  4.    const LOGFILE = 'log.log';  
  5.  
  6.     // 写日志的 
  7.     public static function write($cont) { 
  8.         $cont .= "\r\n"
  9.         // 判断是否备份 
  10.         $log = self::isBak(); // 计算出日志文件的地址 
  11.          
  12.         $fh = fopen($log,'ab'); 
  13.         fwrite($fh,$cont); 
  14.         fclose($fh);  
  15.     } 
  16.  
  17.     // 备份日志 
  18.     public static function bak() { 
  19.         // 就是把原来的日志文件,改个名,存储起来 
  20.         // 改成 年-月-日.bak这种形式 
  21.  
  22.         $log = ROOT . 'data/log/' . self::LOGFILE; 
  23.         $bak = ROOT . 'data/log/' . date('ymd') . mt_rand(10000,99999) . '.bak'
  24.         return rename($log,$bak); 
  25.     } 
  26.  
  27.     // 读取并判断日志的大小 
  28.     public static function isBak() { 
  29.         $log = ROOT . 'data/log/' . self::LOGFILE; 
  30.          
  31.         if(!file_exists($log)) { //如果文件不存在,则创建该文件 
  32.             touch($log);    // touch在linux也有此命令,是快速的建立一个文件 
  33.             return $log
  34.         } 
  35.  
  36.         // 要是存在,则判断大小 
  37.         // 清除缓存 
  38.         clearstatcache(true,$log); 
  39.         $size = filesize($log); 
  40.         if($size <= 1024 * 1024) { //大于1M 
  41.             return $log
  42.         } 
  43.          
  44.         // 走到这一行,说明>1M 
  45.         if(!self::Bak()) { 
  46.             return $log
  47.         } else { 
  48.             touch($log); 
  49.             return $log
  50.         } 
  51.     }