2011-02-28 122 views
1

我正在執行的系統的性質目前需要對用戶執行的所有訪問/操作進行嚴格的日誌記錄。Symfony的審計日誌,最佳實踐

我知道我可以使用symfony記錄器記錄不同的動作,但有沒有一種乾淨的方式來做到這一點?我寧願避免每次使用不同的消息進行多次日誌調用,具體取決於正在訪問的函數,是否有我可以覆蓋一個類,以便我的日誌調用只有一次。我需要存儲儘可能多的信息,以便我可以重新跟蹤任何用戶在任何給定時間執行的所有步驟。

我將尋找一個可能有所幫助的插件。

感謝您的任何信息!

回答

0

我在考慮擴展sfActions。

code mySfActions extends sfActions 
{ 
    public function preExecute() 
    { 
    //log this->getActionName(), $this->getModuleName(), __FILE__ etc 
    //capture user information ($this->getUser() should work) 

    // then call this function to ensure all current preExecute methods work correctly 
    parent::preExecute() 
    } 
} 

然後我所有的actions.class.php文件將擴展這個類而不是sfActions。

這樣它應該給我足夠的信息,但我只在代碼中得到了一次。

想法?

+0

事實上,'父:: preExecute()'調用將需要在所有當前preExecute功能結束 – jollop1 2011-02-28 15:15:21

1

您可以使用sfFilter來避免擴展記錄模塊和路由操作的所有操作。你可以看到this post,我做了這樣的事情,但可以引導你。

你還可以看到this這也解釋瞭如何使用sfFilters