MVC框架的封装(八)日志类

日志类是我们使用框架中都不可缺少的一部分,因此我们需要认真对待我们的日志类。

首先在core\lib文件夹下建立log.php的配置文件,然后再建立一个存放我们所有的驱动文件,也建立在core\lib文件夹下,建立一个drive文件夹,因为我们的驱动可能会有很多,为了方便管理,我们就需要在drive文件夹下再建立一个log文件夹,存放所有的log驱动,然后再建立一个file.php。再接下来进行我们的操作。

1、在config\log.php中,写入的我们日志文件的存储类型及存储地址。

return array(
    'DRIVE'=>'file',   //日志驱动存储在我们的系统中。
    'OPTION'=>array(
        'PATH'=>JWW.'/log/'
    )
);
2、再回到我们的core\lib\log.php中进行编码。在这个类中,我们需要做两件事。

1)确定日志的存储方式。

2)写日志。

在log类中,建立一个静态属性,去存放我们的类。其次使用一个初始化类去加载我们的存储方式。然后再进行写日志。

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;
        //p($class);
    }

    static public function log($name,$file='log'){
        self::$class->log($name,$file);
    }
}
3、在core\lib\drive\log\file.php中进行编码。

调用我们的配置文件。use  core\lib\config;这里呢是一个日志存储位置的确定。

namespace core\lib\drive\log;
use core\lib\config;
class file{
    public $path;   //日志存储位置
    public function __construct(){
       $conf  = config::get('OPTION','log');
        $this->path = $conf['PATH'];
        //p($this->path);die;
    }
    public function log($message,$file='log'){
        //1、确定文件存储位置是否存在
        //   新建目录
        //2、写入日志
        //p($this->path);die;
        if(!is_dir($this->path.date('YmdH'))){
           mkdir($this->path.date('YmdH'),'0777',true);
        }
        return file_put_contents($this->path.date('YmdH').'/'.$file.'.php',date('Y-m-d H:i:s').json_encode($message).PHP_EOL,FILE_APPEND);
    }
}
FILE_APPEND: 使用 FILE_APPEND 可避免删除文件中已有的内容。

PHP_EOL:相当于换行符。在PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性。

上面部分完成后,在基础类中调用一下,检测是否将日志写入到文件中。

\core\lib\log::log('写入文件的内容','日志文件名称');

这样日志类也就完成了!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值