zoukankan      html  css  js  c++  java
  • 怎样封装一个自己的mvc框架(五)

    这一节 我们的框架需要完善一项功能,

    那就是日志功能,通过查看日志我们可以查看之前操作的控制器!

    首先我们需要创建一个日志类

    需要有一下几个步骤

         * 1.确定日志存储方式
         *
         * 2.写日志

    <?PHP 
    namespace corelib;
    use corelibconfig;

    class log 
    {
        static $class;
        /**
         * 1.确定日志存储方式
         *
         * 2.写日志
         */
        static public function init()
        {
            //确定存储方式
            $drive = config::get('DRIVE','log');

            //存储方式路径
            $classpath= 'corelibdrivelog\'.$drive;
            self::$class=new $classpath;
        }


        //调用存储驱动存储日志文件
        static public function log($message,$file='log')
        {
            self::$class->log($message,$file);
        }
    }

    然后在我们的配置文件中,编写日志的配置项目

    <?php 
    return array(
        'DRIVE'=>'file',
        'OPTION'=>array(
            'PATH'=>ROOT."/log//"
        )
    );

    在这里我们需要创建一个日志驱动文件

    日志存储方式可以使存储在文件中,也可以存在数据库等里面

    所以至少创建两种驱动方式

    暂时先不考虑数据库默认文件存储

    <?php 
    namespace corelibdrivelog;
    use corelibconfig;
    //文件系统

    class file
    {
        public $path ;

        //初始化方法
        public function __construct()
        {
            $path=config::get('OPTION','log');
            $this->path=$path['PATH'];
        }

        //创建日志文件
        public function log($message,$file='log')
        {
            /**
             * 1.日志存储位置是否存在
             *
             * 2.写日志
             */
             if (!file_exists($this->path.date('YmdH'))) {
                 mkdir($this->path.date('YmdH'));
             }
     
             //换行符PHP_EOL
            return  file_put_contents($this->path.date('YmdH')."/".$file.".txt", date('Y-m-d H:i:s').json_encode($message).PHP_EOL,FILE_APPEND);
        }

    最后在我我们的核心文件中引入日志类

    //初始化日志存储方式
    coreliblog::init();

    //调用日志存储方式

    coreliblog::log("control:".$control."      "."antion:".$action);

    然后运行框架出现日志文件,运行成功!!

  • 相关阅读:
    常用数据绑定控件详解
    BookList
    BUG:TreeView: NodeCheck Event Does Not Occur
    SQL Server中TEXT类型操作
    Quote:软件开发工程师的经验之谈
    SQL字符串处理函数大全
    Summary 2009 Target 2010
    读取库中的所有表名 列名
    使用大值数据类型
    sql 修改列名及表名 sp_rename
  • 原文地址:https://www.cnblogs.com/quanzhiguo/p/7363386.html
Copyright © 2011-2022 走看看