Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14937
  • 博文数量: 13
  • 博客积分: 270
  • 博客等级: 二等列兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-23 17:50
文章分类
文章存档

2011年(13)

我的朋友

分类: Python/Ruby

2011-09-06 16:10:26

 log.txt  

  1. <?php
  2. echo "test";
  3. /* 转载请加上 晴风 QQ158441281 */
  4. date_default_timezone_set('PRC');
  5. class Logs
  6. {
  7.     private static $_filepath; //文件路径
  8.     private static $_filename; //日志文件名
  9.     private static $_filehandle; //文件句柄

  10.     /**
  11.      *作用:初始化记录类,写入记录
  12.      *输入:文件的路径,要写入的文件名,要写入的记录
  13.      *输出:无
  14.      */
  15.     public static function addLog($log)
  16.     {
  17.         //默认路径为当前路径
  18.         //$_SERVER['DOCUMENT_ROOT']
  19.         self::$_filepath = "logs/" . date("Y/m", time());

  20.         //默认为以时间+.log的文件文件
  21.         self::$_filename = date('Y-m-d', time()) . '.log';

  22.         //生成路径字串
  23.         $path = self::_createPath(self::$_filepath, self::$_filename);
  24.         //判断是否存在该文件
  25.         if (!self::_i***ist($path)) { //不存在
  26.             //没有路径的话,默认为当前目录
  27.             if (!empty(self::$_filepath)) {
  28.                 //创建目录
  29.                 if (!self::_createDir(self::$_filepath)) { //创建目录不成功的处理
  30.                     die("创建目录失败!");
  31.                 }
  32.             }
  33.             //创建文件
  34.             if (!self::_createLogFile($path)) { //创建文件不成功的处理
  35.                 die("创建文件失败!");
  36.             }
  37.         }

  38.         //生成路径字串
  39.         $path = self::_createPath(self::$_filepath, self::$_filename);
  40.         //打开文件
  41.         self::$_filehandle = fopen($path, "a+");
  42.         
  43.         
  44.         //传入的数组记录
  45.         $str[] = "============================日志开始============================\r\n";
  46.         $str[] = "GET: ".self::_getUrl()."\r\n";
  47.         $str[] = "Date: ".date("Y-m-d H:i:s")."|".time()."\r\n";
  48.         $str[] = "POST: ".self::_postData()."\r\n";
  49.         if (is_array($log)) {

  50.             foreach ($log as $k => $v) {
  51.                 $str[] = $k . " : " . $v . "\r\n";
  52.             }
  53.         } else {
  54.             $str[] = $log . "\r\n";
  55.         }
  56.         $str[] = "----------------------------日志结束----------------------------\r\n\r\n\r\n\r\n";
  57.         $str = implode('',$str);
  58.        

  59.         //写日志
  60.         if (!fwrite(self::$_filehandle, $str)) { //写日志失败
  61.             die("写入日志失败");
  62.         }
  63.     }

  64.     /**
  65.      *作用:判断文件是否存在
  66.      *输入:文件的路径,要写入的文件名
  67.      *输出:true | false
  68.      */
  69.     private static function _i***ist($path)
  70.     {
  71.         return file_exists($path);
  72.     }

  73.     /**
  74.      *作用:创建目录
  75.      *输入:要创建的目录
  76.      *输出:true | false
  77.      */
  78.     private static function _createDir($dir)
  79.     {
  80.         return is_dir($dir) or (self::_createDir(dirname($dir)) and mkdir($dir, 0777));
  81.     }

  82.     /**
  83.      *作用:创建日志文件
  84.      *输入:要创建的目录
  85.      *输出:true | false
  86.      */
  87.     private static function _createLogFile($path)
  88.     {
  89.         $handle = fopen($path, "w"); //创建文件
  90.         fclose($handle);
  91.         return self::_i***ist($path);
  92.     }

  93.     /**
  94.      *作用:构建路径
  95.      *输入:文件的路径,要写入的文件名
  96.      *输出:构建好的路径字串
  97.      */
  98.     private static function _createPath($dir, $filename)
  99.     {
  100.         if (empty($dir)) {
  101.             return $filename;
  102.         } else {
  103.             return $dir . "/" . $filename;
  104.         }
  105.     }
  106.     
  107.     /**
  108.      *作用:获取完整URL路径
  109.      *输入:完整URL路径
  110.      *输出:URL路径字串
  111.      */
  112.     private static function _getUrl(){
  113.         $host=isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'localhost');
  114.         return 'http' . (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 's' : '')
  115.                 . '://'
  116.                          . $host
  117.                          . $_SERVER['REQUEST_URI'];
  118.     }
  119.     
  120.     /**
  121.      *作用:获取POST数据
  122.      *输入:POST数据
  123.      *输出:POST数组
  124.      */
  125.     private static function _postData(){
  126.         if(isset($_POST) && count($_POST)>0){
  127.             $i = 0;
  128.             foreach($_POST as $key=>$val){
  129.                 $str[] = $i==0?$key.'='.$val:'&'.$key.'='.$val;
  130.                 $i++;
  131.             }
  132.             $str = implode('',$str);
  133.             return $str;
  134.         }else{
  135.             return 'NOT';
  136.         }
  137.     }

  138.     /**
  139.      *功能: 析构函数,释放文件句柄
  140.      *输入: 无
  141.      *输出: 无
  142.      */
  143.     function __destruct()
  144.     {
  145.         //关闭文件
  146.         fclose(self::$_filehandle);
  147.     }
  148. }

  149. echo "begin log";
  150. logs::addLog("单行日志内容测试");

  151. $logs_array = array(
  152. '操作版块'=>'中山政府注册',
  153. '注册类型'=>'个人用户注册'
  154. );
  155. logs::addLog($logs_array);

  156. echo "end log";

  157. ?>

阅读(527) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~