2013-02-13 44 views
2

我的功能dispatchEvent($名稱,$數據)下,加入這一行/app/Mage.php,剛剛返回上述聲明:Magento的事件日誌不顯示所有事件

Mage::log($name, null, 'events.log'); 

但是,我的活動.log只顯示3個不同的事件:

2013-02-13T21:46:21+00:00 DEBUG (7): resource_get_tablename 
2013-02-13T21:46:21+00:00 DEBUG (7): core_collection_abstract_load_before 
2013-02-13T21:46:21+00:00 DEBUG (7): core_collection_abstract_load_after 

這三個只是反覆重複。沒有其他事件名稱出現。這是否意味着其他事件不會以某種方式發射?

+1

你在哪裏插入你的日誌?有至少兩個dispatchEvent方法'\ Mage :: dispatchEvent'和'\ Mage_Core_Model_App :: dispatchEvent'但是要回答你的問題。不,應該有更多的活動 - 取決於你要求的網站。 – 2013-02-13 23:14:06

+0

看看@ http://magento.stackexchange.com/questions/153/where-can-i-find-a-complete-list-of-magento-events – 2013-02-14 01:49:30

回答

2

我想出瞭解決方案。對於有問題的代碼行,在系統>配置>高級>開發人員>日誌設置>啓用日誌記錄設置爲「否」中的設置中,我只會得到問題中列出的三個事件,輸出到日誌文件。

如果我將該設置設置爲「是」,那麼我會獲取每個被觸發的事件。這看起來像是「一個愚蠢的問題的明顯答案」,但由於我將日誌代碼硬編碼到處理事件的函數中,所以我沒有看到日誌記錄設置的重要性。爲什麼dispatchEvent()會根據日誌設置得到完全不同的輸入?無論記錄設置如何,它都不需要事件的名稱?但是,唉,我對Magento來說相當陌生,並且還不完全理解其中的想法。

我發現了一件額外的事情:使用該Mage:添加的代碼行日誌,每當我將設置保存在配置中時,頁面500的設置都會保存。我對此並不擔心。

TL; DR:在將代碼行添加到dispatchEvent()之前,在系統>配置>高級>開發人員>日誌設置下將「啓用日誌記錄」設置爲「是」。