一、日志类
日志类是我们所有框架中不可缺少的,我们的日志分很多,有的日志类存在数据库中,存在缓存中,很多的。现在我们写的这个是存在文件中。首先呢,我们需要确定下日志的存储方式。
我们需要现在lib里面创建几个目录,将所有的驱动文件都放到lib下的drive里面, 之后呢在drive里面创建我们的日志 如下图:
其中 file 是我们的文件系统 如下:
class file {
public $path; #日志存储位置 是一个路径。
public function __construct(){
$conf = conf::get('OPTION','log');
$this->path = $conf['PATH'];
}
public function log($message,$file = 'log'){
/**
* 1.确定文件储存位置是否存在
* 新建目录
* 2.写入日志
* $file 文件名
* $message 存储的数据
* PHP_EOL 特定的换行符
* FILE_APPEND 防止存储的数据覆盖
*/
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);
}
我们还需要在config中建立一个日志文件路径的配置文件log.php
<?php
return array(
'DRIVE'=>'file',
'OPTION' => array(
'PATH' => MVC.'/log/'
)
);
file也是一个类,当我们去调用lib中log类时
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'){
//调用$class里面的log方法
self::$class->log($name,$file);
}
}
log类中的log方法继而去实现file中的log方法
\core\lib\log::init();
\core\lib\log::log('传入的数据','文件名');
我们调用log类中的log方法时,就会在我们的根目录下的log文件夹中创建文件。