php 中init log
来源:互联网 发布:鬼谷尸踪 有声小说软件 编辑:程序博客网 时间:2024/06/05 12:56
1、修改 Bootstrap.php,在其中加入_initLog()函数。
protected function _initLog(){ $log = $this->getOption('log'); $curLogDir = $log['dir'] . date('Ym'); $logFile = $log['dir'] . date('Ym'). '/'. date('d') .'.txt'; if( !is_dir( $curLogDir ) ){ try { mkdir( $curLogDir , 0700); } catch (Exception $e) { echo nl2br($e->__toString()); } } $writer = new Zend_Log_Writer_Stream( $logFile ); $format = '%timestamp% %priorityName% (%priority%): %message% [%modules%]-[%controller%]-[%action%] '. PHP_EOL; $formatter = new Zend_Log_Formatter_Simple($format); $writer->setFormatter($formatter); $logger = new Zend_Log($writer); $logger->addFilter((int)$log['priority']); Zend_Registry::set('log',$logger);}
它的作用如下:以年月创建目录,以日期创建日志文件;声明日志保存到文件;定义日志格式;声明日志过滤级别;存取$logger对象。$log数组元素读取了application.ini配置。
2、在Controller中设置当前的action信息
我们的Controller的关系是 abstract class Custom_Controller_RootController extends Zend_Controller_Action。在Custom_Controller_RootController中定义了log()方法:
public function log($priority,$message){ $log = Zend_Registry::get('log'); $log->setEventItem('modules', $this->_request->getModuleName() ); $log->setEventItem('controller', $this->_request->getControllerName() ); $log->setEventItem('action', $this->_request->getActionName() ); $log->log($message, $priority);}
它的作用是:获取在_initLog()定义的$logger对象,为对象添加modules/controller/action元素;为什么这三个元素要在这里定义呢,因为只有执行到这里我们才知道分发到了哪个控制器。我们在日志里记录这三个元素就是在查看日志时容易定位问题位置。
3、在继承自Custom_Controller_RootController类中调用
class UserController extends Custom_Controller_DefaultController中定义了indexAction()方法:
public function indexAction(){ $this->log(4,'资金操作出错');}
4、日志文件信息
2011-04-07T10:11:28+08:00 WARN (4): 资金操作出错 [default]-[user]-[index]
以上就是配置的全过程,如果不记录当前的modules/controller/action倒是简单多了。
- php 中init log
- init.rc中设置log的打印等级loglevel
- PHP中查看错误log
- Ecshop中重要文件init.php文件代码分析
- php.init中关于文件上传的相关选项
- ECSHOP init.php解读
- php读写init配置文件
- 查看init进程的log信息
- [运维]-Can't init tc log
- [运维]Can't init tc log
- php项目中常用的log日志记录方法
- ecshop init.php 文件解读
- php的_construct()和init()
- php log class
- PHP Log Class
- PHP log相关函数
- servlet中init方法
- android中 init()
- 如何做一款成功的应用(上)
- java中的IO大全
- Java相对路径/绝对路径总结(转)
- linux对外开放端口
- HDU 2196 Computer(树形dp)
- php 中init log
- JavaScript中的匿名函数及函数的闭包
- ScrollView 置顶效果
- java内存模型
- 你还在用QPushButton吗?
- 强大的grep
- IO流的文件写入与读取
- 测试图片
- lucene实现分组统计的方法