1
我想記錄在我的Web應用程序中更改域的每個用戶操作。當用戶嘗試創建,更新或刪除一些數據時,該操作必須保存到用戶日誌中。但是當用戶動作是列表時,生成報告。它不需要記錄。攔截寫入操作並生成用戶日誌
我目前的程序,我寫服務日誌。並調用該服務日誌到每個操作方法(執行創建,執行更新,執行刪除)
有沒有什麼辦法可以創建單個類來寫入用戶日誌,攔截所有執行的寫入操作?
編輯: 我使用Struts 1.x的
我想記錄在我的Web應用程序中更改域的每個用戶操作。當用戶嘗試創建,更新或刪除一些數據時,該操作必須保存到用戶日誌中。但是當用戶動作是列表時,生成報告。它不需要記錄。攔截寫入操作並生成用戶日誌
我目前的程序,我寫服務日誌。並調用該服務日誌到每個操作方法(執行創建,執行更新,執行刪除)
有沒有什麼辦法可以創建單個類來寫入用戶日誌,攔截所有執行的寫入操作?
編輯: 我使用Struts 1.x的
您可以使用Aspect Oriented Programming,在aspectj一個簡單的解決辦法是這樣的:
public aspect Logger {
pointcut writeActions():
execution (* *.perform*(..));
void before(): writeActions(){
// log the action
}
}
您還可以訪問方法的參數,得到返回值並在方法執行之前或之後執行代碼。