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