CI源码(一)—Log, 日志

Ci的日志模块是作为一个library来实现以及使用的。

(一) 使用方式

(a) 配置

在applicatin/environment/config/config.php中

  • log_threshold: 可写日志级别阀值.array(‘ERROR‘ => ‘1‘, ‘DEBUG‘ => ‘2‘, ‘INFO‘ => ‘3‘, ‘ALL‘ => ‘4’).小于等于阀值的级别都可以写入。配合这evironment的使用,可以在不同的环境下记录不同级别的日志,例如development环境记录all级别,testing记录到debug级别,production环境记录error级别
  • log_path: 日志文件根目录,默认是application/logs, 必须保证目录有写权限
  • log_date_format: 每天日志中的日期格式

(b) 调用

调用日志只有一个方法

  • $this->log->write_log($level = ‘error‘, $msg)

(二) 实现方式

(a) library/Log.php

  • write_log($level = ‘error‘, $msg, $php_error = FALSE): 根据日志级别来判定是否可写入日志

(三)优缺点

(a) 缺点

  • threshold配置限制死了日志的写入,例如在production环境,只能写入error级别的日志,即使想临时加一些debug级别的Log也无法实现。此处我自己扩展了一个write_log_force方法。调用这个方法,会先把threshold调到all级别,然后写日志,最后恢复threshold级别. 地址https://github.com/wkupaochuan/analysis-about-ci-frame.git,
    在application/library/MY_Log.php中

ci框架源码分析地址https://github.com/wkupaochuan/analysis-about-ci-frame.git

时间: 2024-08-08 06:55:03

CI源码(一)—Log, 日志的相关文章

GlusterFS源码解析 —— GlusterFS日志解析

Logging.c: /* Copyright (c) 2008-2012 Red Hat, Inc. <http://www.redhat.com> This file is part of GlusterFS. This file is licensed to you under your choice of the GNU Lesser General Public License, version 3 or any later version (LGPLv3 or later), or

CI源码引用使用--php引用demo,静态变量和引用关系

CI源码引用使用在Common.php中,加载配置和类的方法 function &test() {     static $a = '';     if (!$a) {         $a = 2;     }     return $a; } $test =& test(); echo $test; $test = 3; echo test();   结果是23 引用:方法和使用方法的变量指向同一块内容:修改使用后的变量,方法内部值也会变 注意:方法和使用都需要&   静态变量

Yii源码阅读笔记 - 日志组件

?使用 Yii框架为开发者提供两个静态方法进行日志记录: Yii::log($message, $level, $category);Yii::trace($message, $category); 两者的区别在于后者依赖于应用开启调试模式,即定义常量YII_DEBUG: defined('YII_DEBUG') or define('YII_DEBUG', true); Yii::log方法的调用需要指定message的level和category.category是格式为“xxx.yyy.z

CI源码阅读

CodeIgniter源码分析 http://calixwu.com/2014/11/codeigniter-yuanmafenxi.html CI框架源码阅读笔记 http://www.cnblogs.com/ohmygirl/p/4052686.html

LAMP纯源码编译安装日志

一.LAMP构架的安装与经验技巧(源码安装好处.是便于管理,可以选定参数,可以使用新版本) 相关软件列表: # ls /soft/ | grep -E "*.gz|*.zip|*.xz|*.bz2"    apr-1.4.5.tar.gz    apr-util-1.3.12.tar.gz    autoconf-2.61.tar.gz    freetype-2.3.12.tar.gz    httpd-2.4.18.tar.bz2    jpegsrc.v6b.tar.gz    

CI源码(一)—config配置文件

(一) 使用方式 (a) 系统级配置 语言.字符编码.session.cookie等配置项 文件位置: application/config/config.php 加载方式: 自动加载 调用方式: $this->config->item('config_item_key'); (b) 业务级别配置 实际业务中用到的配置项,或者叫做常量,比如1<->男  2<->女  3<->未知等数据.强烈建议把业务级别的配置项与系统配置项分开.CI支持多级目录的配置文件加

从CI源码学习PHP高级开发技能——CodeIgniter框架源码深度剖析(4):输出类Output.php

Output类参考说明(摘抄CI手册): 在一般情况下,你可能根本就不会注意到输出类,因为它无需你的干涉, 对你来说完全是透明的.例如,当你使用 加载器 加载一个视图文件时,它会自动传入到输出类,并在系统执行的最后由 CodeIgniter 自动调用.尽管如此,在你需要时,你还是可以对输出进行手工处理. 在说Output类前先说几个知识点和编程技巧: $_SERVER['HTTP_ACCEPT_ENCODING'] .对应请求头是Accept-Encoding:"gzip, deflate&qu

CI源码分析(三)—DB事务

(0) 使用方法 可以使用系统提供的方法: $this->db->trans_start(); // 开始事务 $this->db->query(); // 执行sqls $this->db->trans_complete(); // 结束事务(不需要关心是否回滚) if !$this->db->trans_status do something; // 错误处理 也可以自己处理commit和rollback: $this->db->trans_

tomcat源码阅读之日志记录器(Logger)

UML图: 1.Logger接口中定义了日志的级别:FATAL.ERROR.WARNING.INFORMATION.DEBUG,通过接口函数getVerbosity获取日志级别,setVerbosity设置日志级别: 2.接口中提供一组重载的log方法来记录日志,在LoggerBase实现类中除了log(String msg)方法没有实现外,其他重载的log方法均实现为调用这个方法来实现日志的记录: 3.在LoggerBase类中,默认的日志级别是ERROR:带日志级别参数的log方法在记录日志