学习封装mvc(八)日志类

日志类呢可能存在文件中,也可能存在数据库中,也可能存在缓存中,下面讲下日志类是怎么存在文件中的

首先在\core\lib下建立日志类log.php,代码如下

<?php

namespace core\lib;
use core\lib\conf;

class log
{
    /**
     * 1.确定日志存储方式
     * 2.写日志
     */

    static $class;
    //日志
    static public function init(){
        $drive = conf::get('DRIVE','log');
        $class = '\core\lib\drive\log\\'.$drive;
        self::$class = new $class;
    }

    static public function log($name ,$file = 'log')         
    //调用该方法,在关键位置打上日志 
    {
        self::$class->log($name ,$file);
    }
}
然后在\core\lib下建立配置文件夹写入file.php

<?php 

namespace core\lib\drive\log;
use core\lib\conf;

class file
{    
  //把日志存入文件中
      public $path;                                        //日志存储位置
      public function __construct()
      {

         $conf = conf::get('OPTION','log');                //初始化加载
         $this->path = $conf['PATH'];
      }

      public function log($message,$file = 'log')
      {
        /**
         * 1.确定存储位置是否存在
         * 2. 写日志
         */
           // p($this->path);exit;
           if(!is_dir($this->path.date('YmdH'))){               //判断是否存在该路径  每小时产生日志文件

                 mkdir($this->path.date('YmdH'),'0777',true);   //没有则给权限777
           }       
           // p($message);
           // p($this->path.$file.'.php');                     
           return file_put_contents($this->path.date('YmdH').'/'.$file.'.php',date('Y-m-d H:i:s').json_encode($message).PHP_EOL,FILE_APPEND);  
             //因为有时日志为数组压成json串   PHP_EOL 换行  FILE_APPEND 追加
           // return file_put_contents($this->path.date('YmdH').'/'.$file.'.php',$message,FILE_APPEND);

      }
}
然后验证一下,检测一下我们的\log目录下是否有此文件

下面我们可以在调用

 \core\lib\log::init();    //初始化

\core\lib\log::log('ctrl:'.$ctrlClass.'   '.'action:'.$action);   //写入控制器方法

在我们想要打上日志的地方写入日志!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值