2011-03-16 83 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('...');

藝術

相關問題