繁体   English   中英

在自定义类中使用Zend_Log

[英]Using Zend_Log in custom classes

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

现在,我有一个Zend记录器的包装器,因此,大概可以在全局访问它:

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

是否应该将此代码添加到我要记录的类中的每个方法中? 我不应该在班级内创建日志吗? 有没有更聪明的方法?

感谢您的帮助,DC

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

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

最坏的情况是,我会创建一个静态吸气剂,例如My_Log::get()->error("message"); 唯一的一点是,现在您将能够轻松修复测试环境,以使get返回一个伪造的实例。 您所有的My_Log需求是一个setLogger($logger) ,它将用模拟或其他替换静态实例。 无论如何,静态调用都是不好的:/如果可能的话,尝试解耦类,以便它们依赖于尽可能少的类。 甚至将logger手动注入到类构造函数中也是一个更好的主意。 如果您有MVC动作插件或基本控制器可以提供延迟加载getLogger() ,则您的代码可以执行$this->getLogger()->error('...');

艺术

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM