国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

如何記錄系統(tǒng)(oa)的操作日志 ?

2019-11-15 01:10:56
字體:
供稿:網(wǎng)友
如何記錄系統(tǒng)(oa)的操作日志 ?

  并不是把項目運行日志打印的文件或者控制臺,而是需要把 誰,什么時候,操作了什么.操作的內(nèi)容是什么,顯示出來給使用oa的人員查閱.

  例如:更新了一個客戶的名字.就需要記錄為 誰,什么時候,修改了 客戶,客戶原名字,客戶的新名字 記錄下來.

  設(shè)計思路有:

  1.在action 層使用sPRing aop.

  好處是一個action 層的方法,即使包含了多個service 層的方法(操作),也會被看著是一個操作來記錄.

  問題是:action 層從jsp 傳過來的參數(shù)是HttpServeletRequest 類型,根本不知道傳過來的參數(shù) 到底是什么.

  2.在service 層使用spring aop.

  好處是可以獲取到具體的參數(shù).

  問題是:假如多個多個service 層方法組成一個action 層的方法,日志將會記錄多個操作,過于復(fù)雜,普通操作人員看不懂.

  3.直接在action層手寫.不使用spring aop

  將日志記錄到數(shù)據(jù)庫.好處是可以將日志寫的非常具體.

  問題是: 每個方法都寫,太累!

  

  最后使用方法2.

  因為只對增加,刪除,修改做日志,這樣action 層一個方法都只有一個需要事務(wù)的方法(增刪改),所以是一對一,沒什么問題,可以寫的比較清晰.

  實現(xiàn)的技術(shù)有 :在實體類添加自定義注解+spring aop +實體類添加getNameForLog() 方法.

  getNameForLog() 方法會返回一個對象唯一的標(biāo)識,如名字,如Id.通過這個方法可以在aop 中獲取方法的參數(shù)對象的唯一名字.這個名字就是日志中的"操作的內(nèi)容是什么"的內(nèi)容,可以讓一般人看的懂是操作了什么對象.

  有一個問題是:不知道在aop 中獲取參數(shù)更新前的數(shù)據(jù).因為update(obj) 中的obj 已經(jīng)是提交用于更新的.

  在此也請教一下有沒有其他更好的方法實現(xiàn)這種日志記錄呢?謝謝!

  


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡山县| 萝北县| 随州市| 宁阳县| 百色市| 东光县| 乌恰县| 彰武县| 商丘市| 天门市| 商洛市| 定西市| 巨鹿县| 钟山县| 福贡县| 即墨市| 益阳市| 涟源市| 扶风县| 叙永县| 长白| 连江县| 易门县| 鄯善县| 石阡县| 凤庆县| 洛隆县| 岫岩| 清徐县| 龙胜| 雷山县| 余干县| 介休市| 清涧县| 嫩江县| 龙川县| 玛沁县| 边坝县| 桂平市| 璧山县| 新乡县|