最近很忙,雜事也多,所以開發本框架也是斷斷續續的,終于在前兩天將前面設定的功能都基本完成了,剩下一些小功能遺漏的以后發現再補上。接下來的章節主要都是講解在本框架的基礎上進行開發的小巧。
本框架主要有四種日志記錄,分別是登陸日志、操作日志、手動收集異常日志和自動收集異常日志四種,大部分日志采集都不用開發者動手實現,在模板與相關的功能類中已自動幫我們將所需要的日志記錄下來了。
登陸日志,記錄的當然是用戶登陸、退出、在線時長的日志,主要是在登陸(Login.aspx)、后端首頁(Main.aspx,有一個退出按鈕)和在線列表(OnlineUsersList.aspx,有踢除用戶下線按鈕)等幾個頁面使用,所使用到的邏輯層函數放在LoginLogBll.cs(用戶登陸日志自定義邏輯類)與OnlineUsersBll.cs(OnlineUsersBll邏輯類)兩個文件中。登陸頁面主要是記錄用戶登陸系統的日志信息,而其他頁面則是記錄用戶退出系統的日志信息,同時記錄在線時長。當然后端首頁有個定時器,會每分鐘更新用戶最后在線時間,以便用戶退出系統時(或直接關閉瀏覽器后),相關的程序能及時記錄用戶退出信息及在線時長。
操作日志,記錄的是用戶在后端管理系統中,什么時間打開了那個頁面,然后進行的是添加、修改、刪除記錄、更新狀態、刪除圖片、踢除用戶下線......等各種操作信息。方便出現問題時,管理人員能快捷的查出操作人員追究對應責任;也方便領導查看后端相關人員有沒有使用系統,分析系統推廣效果(很多OA或企業管理系統在企業購買回來后,不少員工都很抵觸不去使用系統,造成花了很多錢購買來的系統成為擺設,當然這個操作記錄并不能對這種情況的改善有很大的幫助,但至少讓相關人員知道員工對系統的使用情況,哈哈...)
對于操作日志的記錄,開發人員基本上不用去編寫代碼,因為在生成的模板函數中已全面的記錄各種操作日志,除非自定義的函數中并沒有去調用模板生成的添加、修改、刪除等函數,直接使用SubSonic3.0插件接口或ADO.NET接口,那樣的話就得自己編寫代碼記錄了。而對于用戶進入過那些頁面的記錄,由于后端系統開發的頁面都必須繼承PageBase類,每個后端頁面打開時,都會運行該類的初始化函數,該初始化函數中會調用CommonBll.UserRecord(this)函數,忠誠的記錄下用戶的操作軌跡。
具體實現代碼大家可以查看邏輯層生成的模板函數類,里面所有添加、修改、刪除、更新函數,都會調用UseLogBll.GetInstence().Save()這個函數,記錄用戶進行了什么樣的操作。而自定義函數想要記錄用戶操作說明,也可以直接調用這個函數,寫上自定義操作說明。
手動收集異常日志,對于異常,有的朋友建議都將它拋出來,這樣的話容易發現Bug,然后進行修復,但都是這樣處理的話,用戶體驗就會比較差,所以我一般是數據層將異常拋出來,在邏輯層或UI層將它們都捕捉起來,然后在catch塊中調用CommonBll.WriteLog("異常說明", e)把異常記錄到文件中,當系統交付給使用方時,使用人員進行某些操作時,萬一出現異常也只是顯示失敗或操作不了,而不會拋出黃頁,需要維護時,只要使用方將軟件或網站根目錄下的Data文件夾打包發給開發人員即可分析查看異常問題所在。
當然對于那些需要非常詳細的日志記錄的程序,也可以將每一步執行的結果調用日志函數記錄下來,方便開發人員分析問題。
對于手動收集異常的調用代碼,大家可以查看邏輯層(Solution.Logic.Managers)的SubSonic文件夾下面的模板類和UI層代碼。
自動收集異常日志,顧名思義就是自動記錄所有我們沒有捕捉到的異常。雖然我們上面已做了異常捕捉處理,但難免有些地方會忘記捕捉,那么我們就在全局異常處理那里將它記錄下來。我們在Global.asax文件的application_Error()函數中進行異常采集,收集服務器端頁面發生的所有異常,調用自定義函數ErrorLogBll.GetInstence().Save()將它們記錄到數據庫中。
通過以上四種日志記錄,基本上將我們需要的信息都記錄了下來,協助我們排查安全問題、排查各種錯誤。
解決方案下載:(本解決方案忘了將之前注釋掉的權限打開了...下次處理后再重新發出來吧)
從零開始編寫自己的C#框架解決方案.rar
說明:試過有朋友將所有章節中的解決方案都使用前面測試例子中的數據庫,所以一直顯示不了列表,所以查看過后才知道數據庫沒有記錄引起的......所以在這里說明一下,在開發過程中,根據需要我會對數據表或字段進行增改操作,為了避免寫太多的更新SQL語句,所以每個章節所配的數據庫只是對應本章節,大家使用新的解決方案時就重新附加新的數據庫。大家打開數據字典就會查看到,幾乎對數據字典的每個修改我都有記錄下來,方便大家比對。
版權聲明: 本文由AllEmpty原創并發布于博客園,歡迎轉載,未經本人同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責任的權利。如有問題,可以通過1654937@QQ.com 聯系我,非常感謝。
發表本編內容,只要主為了和大家共同學習共同進步,有興趣的朋友可以加加Q群:327360708 ,大家一起探討。
更多內容,敬請觀注博客:http://www.49028c.com/EmptyFS/
新聞熱點
疑難解答