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

Spring MVC 根据 controller 层方法入参和返回值动态生成日志 - 上 :寻找扩展点并进行封装 背景 需求是这样的:对网关层指定接口(url)的调用情况做日志记录,日志需要根据 controller 层方法的入参和返回值动态生成。 如果只是记录 url 的调用情况可以直接使用 HandlerInterceptor 实现,但需求中需要能够访问入参和返回值,虽然通过拦截器提供的接口也可以解析到请求参数以及返回值,但都需要对这些参数进行一定的处理,因此直接在 Controller 层方法上处理是最... 阅读详情

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

首先在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('写入文件的内容','日志文件名称');

这样日志类也就完成了!


AWS MVC框架详情 ** 什么是AWS MVC? ** AWS MVC(Model-View-Controller)是一个非常优秀、轻量级、高性能的Web编程框架。遵循实用、简洁的设计原则让整个框架非常紧凑,开发者只需具备简单J2EE Web编程经验,即可快速掌握这个框架。AWS PaaS自身也是基于该框架开发完成,同时AWS MVC也是开发AWS App的标准框架。你可以利用这个框架完成几乎你想实现的任何目标: 1,极致体验的Web应用 2,复杂的用户处理界面 3,为移动端编写HTML5的Hybrid App(混合模式移动应 阅读详情

相关推荐

php 日志封装类

php代码 ,一个简易的日志封装类,可以用作调试可简单日志记录

PHP创建日志记录(已封装)

1 <?php 2 3 class Logs{ 4 private $_filepath; //文件路径 5 private $_filename; //文件名 6 private $_filehandle; //文件引擎 7 8 9 public function Logs($dir = null,$fi...

weixin_34049032的博客 312

从模拟到实战:移远EC800M单片机MQTT接入OneNet全流程解析

本文详细解析了移远EC800M单片机通过MQTT协议接入OneNet平台的全流程,涵盖环境准备、模拟设备搭建、硬件迁移、数据交互调试及性能优化等关键步骤。针对常见问题如AT指令缓冲区溢出、心跳间隔设置等提供实战解决方案,帮助开发者高效实现物联网设备稳定接入。

weixin_29215815的博客 431

php日志工具类 - 纯原生

【代码】php日志工具类 - 纯原生。

Yang952323的博客 248

国产信创麒麟操作系统 (kylin v10 x86架构) 离线安装nginx步骤(亲测,超详细步骤)、修改nginx配置文件、启动、重启、关闭nginx记录(亲测有效)

国产信创麒麟操作系统 (kylin v10 x86架构) 离线安装nginx步骤(亲测,超详细步骤)、修改nginx配置文件、启动、重启、关闭nginx记录(亲测有效)

qq445829096的博客 2761

CMU动作捕捉数据集实战:从AMC文件到Python可视化的完整流程

本文提供了CMU动作捕捉数据集的完整实战指南,详细解析了AMC文件格式,并对比了MATLAB转换、Python原生解析及转换为BVH格式三种数据解析策略。重点介绍了如何构建Python数据处理与可视化管道,包括将数据转换为Pandas DataFrame、绘制时间序列与相关性热力图,以及实现3D骨架动画,帮助开发者高效利用这一经典动作捕获数据集进行运动分析与模型训练。

android的专栏 716

TP5 创建文件写入内容

/** * [payLog 支付日志log] * @param [type] $mark [备注] * @param [type] $log_content [内容] * @param string $keyp [名] * @return [type] [description] */ public function m...

joker6295的博客 5343

【Unity引擎技术整合】 Unity学习路线 | 知识汇总 | 持续更新 | 保持乐趣 | 共同成长

本文对Unity引擎的知识进行了一个整理总结,基本包含了Unity中大部分的知识介绍。 网上也有很多Unity相关的学习资料,但大多数都不成体系,学起来的时候难免会东奔西走的摸不着头脑。 本文整理的多数文章都是有对应的系列性文章专栏,可以更方便的进行系统学习相关知识体系。

努力前行,总会成为自己心中的那道光 15万+

Monolog-PHP日志类库

Monolog是php下比较全又容易扩展的记录日志类库。目前有包括Symfony 、Laravel、 CakePHP等诸多知名php框架都内置了Monolog。Monolog可以把你的日志发送到文件,sockets,收件箱,数据库和各种web services。 Monolog遵循PSR3的接口规范,可以很轻易的替换成其他遵循同一规范的日志类库。Monolog具有良好的扩展性,通过Handl

LanceLive 8577

Keil uVision5 STM32 startup_stm32f10x_md_vl.s error A3906U Malformed via file target not created..

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2773

三菱FX系列PLC模拟量输入AD模块的使用方法和相关编程设置详解

三菱FX系列PLC模拟量输入AD模块的使用方法和相关编程设置详解

Robot_PLC_HMI_Automation 1万+

php 日志类

使用php开发的日志处理类,本类可自定义多种日志配置,根据标签对应配置。代码中方便调用此类进行日志记录操作。提供完整代码及演示例子,方便大家学习使用。 功能: 1.自定义日志根目录及日志文件名称。 2.使用日期时间格式自定义日志目录。 3.自动创建不存在的日志目录。 4.记录不同分类的日志,例如信息日志,警告日志,错误日志。 5.可自定义日志配置,日志根据标签调用不同的日志配置。 代码如下: LOG.class.php <?php /** ...

php_lzr的博客 725

L型探测器几何畸变矫正

定位像素空间位置 -> 计算水平面投影点 -> 统一物理分辨率 -> 重采样生成新图。

如果想成为中心,那么就到中心去吧。 241

浅谈MVC之框架封装总结

在前面我们一步一步的把我们的MVC封装过程进行了跟踪记录。虽然比较详细但是知识点都比较零散缺乏一个系统性的汇总。今天我们来把前面的所有流程来做一个汇总。 先来看一下我们自己的目录结构: 入口文件 入口文件为index.PHP所在位置应该为项目更目录下 编程代码为:<?php /** * 入口文件 * 1.定义常量 * 2.加载函数库 * 3.启动框架

丿靈魂灬燈芐舞的博客 1612

仿真学习系列(三十):Sigrity设计文件(Altium Designer和Allegro)导入

很多刚接触 Sigrity 的工程师都会产生疑问:Sigrity 功能这么多,是不是门槛很高?我能学得会吗? 其实,Sigrity 的核心并不在“操作难”,而是在“理解仿真背后的机理”。一旦掌握基本流程,你会发现它并没有想象中那么复杂,反而能大大提升你的高速设计能力。本节内容,就是从最简单的一步开始 —— 把你的设计文件正确导入 Sigrity。

案例文章,高速信号 521

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

MVC封装(八)日志类

首先先在core\lib\目录下新建一个log.php文件,然后创建log类,先定义一个初始化的方法 init()。 在core\lib\下建立drive文件夹,需要把所有驱动信息放到lib下的drive文件夹中,然后在里面在进行建立log文件夹,在里面创建file.php,这代表的是我们的日志存在文件中,在建立一个mysql.php代表的是我们的日志可能存在mysql数据库中。接下

han_cui的博客 457

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Spring MVC 框架

MVC是一种软件架构的设计思想,目的是为了降低项目中各个模块间的耦合度M:Model 模型V:View 视图C:Controller 控制器模型层: 负责业务逻辑的处理和数据库的操作视图层: 负责页面数据的最终展示控制器层: 负责接收客户端的请求,并调用模型处理业务,最终返回响应超文本传输协议。

qq_68630091的博客 1392

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

学习封装mvc(八)日志类

日志类呢可能存在文件中,也可能存在数据库中,也可能存在缓存中,下面讲下日志类是怎么存在文件中的 首先在\core\lib下建立日志类log.php,代码如下 <?php namespace core\lib; use core\lib\conf; class log {     /**      * 1.确定日志存储方式      * 2.写日志      */     static $

mounttp的博客 306

从零开始写C# MVC框架之--- 配置log4日志

在框架中配置日志分2步,一个是在帮助项目Zy.Utilities--Zy.Utility.Core中新建log类,封装写入日志方法,还需要在Zy.Utility.Core添加 log4net 的引用 1、log实现类 1 [assembly: log4net.Config.XmlConfigurator(Watch = true)] 2 namespace Z...

270

MVC框架扩展类

之前我们已经搭建了一个简陋的mvc框架,下面我们来提高一下框架的健壮性, 首先,看一下我们之前写的路由类;一些默认的配置都是些在文件中的,我们可以封装一个配置类来替换这些值,这样我们修改配置的时候就不用单独在文件中修改了; $this->action = 'index.html'    ①新建一个配置目录config;用来储存我们的配置文件;     ②在config目录下新建route

SFNES的博客 688

java中mvc框架有哪些,MVC框架详解,框架到底是什么? | 学步园

博客不是原创,但是本人感觉甚好,在优快云平台分享给大家...希望读者不要辜负我Ctrl+C,,,Ctrl+V的辛苦,读完会受益的。现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2,Spring,Hibernate。似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和找工作的必备基础。然而,如果在面试的时候问这些程序员,你们为什么要学...

weixin_39876514的博客 1101

MVC模式和SSM框架的理解

MVC模式和SSM框架的解释(易懂易用) 什么是MVC模式? M model 模型-编写程序应有的功能,数据管理和数据库设计。 V view 视图层-界面设计人员进行界面设计。 C controller 控制-控制器负责转发请求,对请求进行处理。 什么是SSM框架? SSM是Spring+Spring MVC+Mybatis的缩写,主流的Java EE企业级框架。其中,Sprin...

willalsoi的博客 1万+

MVC框架自己封装开启超神之路(上) 3-2日志类

这章我们来了解下日志类,那么日志类是所有的框架中都是必不可少的一个环节,但是存放的形式有很多中。有可能存放在数据库当中,也有可能是存放在文件中,也有可能是在缓存中。 首先我们先创建一个类log.php 然后再规划一下我们的类要怎么做现在我们来说把日子存放在我们本地日志怎么做 然后再我们config我的配置里面配置 然后在我们的lib目录下创建一个2级目录来写我们的具体配置

nomey_Mr的博客 508
上一篇: MVC框架的封装(七)配置加载类
下一篇: git常用的命令行
php_younger
博客等级 码龄10年 32粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值