封装框架(十)日志类

每个框架都有日志类,日志类非常的重要,接下来要在我们的框架中加入日志类

首先我们要对日志类有一个规划

1、确定日志的存储方式,例如:存到文件中、存到数据库中

2、写日志



我们这里确定为把日志存到文件系统中

首先我们在lib目录下建一个log.php用来确定存储方式 

<?php
namespace core\lib;

class log
{
    static $class;
    /**
     * 1、确定日志存储方式
     * 2、写日志
     */

    static public function init() {
        //确定存储方式
        $drive = config::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);
    }
}
在根目录下建一个log的文件夹用来存放日志文件
然后在lib下建一个dirve文件夹 用来存放我们框架所要用到的驱动文件

在dirve中建一个file.php作为日志的驱动文件

<?php
namespace core\lib\dirve\log;
//日志存在文件系统中
use core\lib\config;

class file
{
    public $path;//日志存储位置
    public function __construct()
    {
        $conf = config::get('OPTION','log');
        $this->path = $conf['PATH'];
    }
    public function log($message,$file = 'log')
    {
        /**
         * 1、确定文件的存储位置是否存在
         * 新建目录
         * 2、写入日志
         */
        if(!is_dir($this->path.date('YmdH'))) {
            mkdir($this->path.date('YmdH'),'0777',true);
        }
        file_put_contents($this->path.date('YmdH').'/'.$file.'.php',date('y-m-d H:i:s').json_encode($message).PHP_EOL,FILE_APPEND);
    }
}
然后我们在core.php中的run方法中加入日志,使日志中显示访问过的控制器与方法

static public function run()
{
    $route = new route();//实例化路有类
    $controller = $route->ctrl;//获取控制器名
    $action     = $route->action;//获取方法名
    $ctrlfile = APP.'/controllers/'.ucfirst($controller).'Controller.php';//控制器文件路径
    $ctrlClass = '\\'.MODULE.'\controllers\\'.ucfirst($controller).'Controller';
    if(is_file($ctrlfile)){//验证这个文件是否存在
        include $ctrlfile;//包含控制器文件
        $ctrl = new $ctrlClass();//实例化控制器
        $ctrl->$action();//调用方法
        log::init();//将访问的控制器和方法写入到log文件中
        log::log('controller:'.$controller.'     '.'action:'.$action);
    } else {
        throw new \Exception('找不到控制器'.$ctrlfile);
    }
}
这样,我们的日志类就配置完成了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值