Php 在自定义类中使用Zend_日志

Php 在自定义类中使用Zend_日志,php,zend-framework,zend-log,Php,Zend Framework,Zend Log,我使用的是Zend_Log和其他必需的类,没有MVC框架。我希望将来将Zend的日志功能和其他模块添加到我的自定义类中,我想知道这样做的最佳方法是什么 现在我有一个Zend logger的包装器,所以我可以全局访问它: My_log::log('Testing', Zend_Log::INFO); 我是否应该将此代码添加到类中要记录的每个方法中?我不应该在类中创建日志吗?有更聪明的方法吗 我感谢你的帮助, DC如果你的应用可以集成,依赖注入容器似乎是一个很好的解决方案。所有静态调用都会导致测试

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

现在我有一个Zend logger的包装器,所以我可以全局访问它:

My_log::log('Testing', Zend_Log::INFO);
我是否应该将此代码添加到类中要记录的每个方法中?我不应该在类中创建日志吗?有更聪明的方法吗

我感谢你的帮助,
DC

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

看看这个医生

最糟糕的情况是,我会创建一个静态getter,比如我的_Log::get->errormessage;唯一的一点是,现在您可以轻松地修复测试环境,使get返回一个假实例。My_Log需要的只是一个setLogger$logger,它将用模拟或其他方式替换静态实例。静态调用的任何方式都是不好的:/如果可能的话,尝试解耦类,以便它们依赖尽可能少的类。甚至手动将记录器注入类构造函数也是一个更好的主意。如果您有MVC操作插件或基本控制器,则可以提供延迟加载getLogger,以便您的代码可以执行$this->getLogger->error'…'


art

现在,日志的概念也在困扰着我。但我也对日志服务器进行了SOAP调用,以便在一个位置从多个不同的应用程序实例进行日志记录: