2010-10-23 76 views
1

我想記錄在我的Web應用程序中更改域的每個用戶操作。當用戶嘗試創建,更新或刪除一些數據時,該操作必須保存到用戶日誌中。但是當用戶動作是列表時,生成報告。它不需要記錄。攔截寫入操作並生成用戶日誌

我目前的程序,我寫服務日誌。並調用該服務日誌到每個操作方法(執行創建,執行更新,執行刪除)

有沒有什麼辦法可以創建單個類來寫入用戶日誌,攔截所有執行的寫入操作?

編輯: 我使用Struts 1.x的

回答

1

您可以使用Aspect Oriented Programming,在aspectj一個簡單的解決辦法是這樣的:

public aspect Logger { 

    pointcut writeActions(): 
     execution (* *.perform*(..)); 

    void before(): writeActions(){ 
     // log the action 
    } 

} 

您還可以訪問方法的參數,得到返回值並在方法執行之前或之後執行代碼。