2011-03-16 33 views
0

我正在使用Zend_Log和其他所需的类,没有使用MVC框架。我想将Zend的日志记录功能(以及将来的其他模块)添加到我的自定义类中,我想知道这样做的最佳方法是什么。在自定义类中使用Zend_Log

现在我对Zend的记录器的包装等等,想必,我可以在全球访问:

My_log::log('Testing', Zend_Log::INFO); 

我应该将此代码添加到我的班,我要记录的方法?我不应该在我的课堂内创建日志吗?有更聪明的方法吗?

我欣赏的帮助, DC

+0

记录的概念缠着我也一样,现在。但我也有SOAP调用日志记录服务器在一个地方登录许多不同的应用程序实例:( – 2011-03-30 13:59:44

回答

0

依赖注入容器似乎是一个很好的解决方案,如果您的应用程序可以集成。所有静态调用都会在测试环境中引发问题

有环顾这个文档 http://components.symfony-project.org/dependency-injection/trunk/book/04-Builder

我会创造像My_Log::get()->error("message");静态吸气唯一的一点是,现在你就可以轻松地解决测试environemnt使获取返回假的情况下最坏的情况。你所有的My_Log需要是一个setLogger($logger),它将用模拟或其他方式替换静态实例。任何方式静态调用都是不好的:/如果可能的话,尝试去分离类,以便它们依赖于尽可能少的类。即使手动注入记录器到您的类构造函数是一个更好的主意。如果您有MVC动作插件或基本控制器可以提供延迟加载getLogger()因此您的代码可以做$this->getLogger()->error('...');

艺术

相关问题