当前位置:  开发笔记 > 编程语言 > 正文

更好地实现全局Zend_Log实例?

如何解决《更好地实现全局Zend_Log实例?》经验,为你挑选了1个好方法。

有没有更好的方法来拥有一个全局可访问的Zend_Log对象?

在Bootstrap.php我正在做:

protected function _initLogging()
{
    $logger = new Zend_Log();
    $writer = new Zend_Log_Writer_Stream(APPLICATION_PATH . '/../app.log');
    $logger->addWriter($writer);
    Zend_Registry::set('log', $logger);
}

然后在整个应用程序中我将使用:

Zend_Registry::get('log')->debug('hello world');

我想这并不可怕.它看起来有点冗长.



1> Gordon..:

引用此新闻组条目:

class My_Helper_Logger extends Zend_Controller_Action_Helper_Abstract
{
  function init()
  {
    $this->getActionController()->logger = $this->getActionController()
                                                  ->getInvokeArg('bootstrap')
                                                    ->getResource('logger');
  }
}

要应用帮助器,你所要做的就是把这个行放在Michael的例子的init()函数中:

Zend_Controller_Action_HelperBroker::addHelper(new My_Helper_Logger());

现在,您可以在控制器的每个操作中以$ this-> logger的形式访问记录器

还有许多其他建议,请查看链接.


在阅读了一些新闻组之后,这种方法的一个缺点就是你无法登录模型,查看助手和/或资源插件
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有