所以我想开始登录我的 Zend Framework 应用程序。我想在 Bootstrap 中的某个位置注册记录器,以便我可以从任何 Controller 操作轻松访问它。我认为这应该是一个简单的事情,以前已经做过,但是我该怎么做呢?
文档显示了类似的内容,但我不想每次想要记录某些内容时都创建一个新的 Zend_Log:
$writer = new Zend_Log_Writer_Stream('/path/to/my/log/file');
$logger = new Zend_Log($writer);
$logger->log('Informational message', Zend_Log::INFO);
解决方案
这就是我想出来的。感谢您关于 Zend_Registry 的提醒!
// in /application/Bootstrap.php
protected function _initLogger()
{
$writer = new Zend_Log_Writer_Stream('php://output');
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
}
// in controller actions
$logger = Zend_Registry::get('logger');
$logger->log('message');
最佳答案
最简单的是使用Zend_Registry来存储日志
在 Bootstrap 中使用它
Zend_Registry::set('log', $log);
并用它来获取该日志
Zend_Registry::get('log')
关于zend-framework - 如何在 ZF 1.8+ 应用程序的 Bootstrap 中注册 Zend_Log?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1739286/