循序漸進VUE+Element 前端應用開發(31)— 系統的日誌管理,包括登錄日誌、介面訪問日誌、實體變化歷史日誌
- 2021 年 1 月 4 日
- 筆記
- 循序漸進VUE+Element
在一個系統的許可權管理模組中,一般都需要跟蹤一些具體的日誌,ABP框架的系統的日誌管理,包括登錄日誌、介面訪問日誌、實體變化歷史日誌,本篇隨筆介紹ABP框架中這些日誌的管理和介面處理。
1、系統登錄日誌
在系統每次登錄的時候,我們需要記錄具體的登錄資訊,這個一般是系統最基礎的日誌管理。
ABP框架提供基礎的登錄日誌管理,用戶在進行登陸鑒權的時候,會自動記錄對應的日誌,存儲在記錄表AbpUserLoginAttempts中,我們只需要把它提取出來進行展示即可。
我們在Vue前端,定義BaseApi類,然後繼承它實現基礎的介面即可。
列表展示的Vue端的JS邏輯程式碼如下所示。
getlist() { // 列表數據獲取 var param = { // 構造常規的分頁查詢條件 SkipCount: (this.pageinfo.pageindex - 1) * this.pageinfo.pagesize, MaxResultCount: this.pageinfo.pagesize, // 過濾條件 UserNameOrEmailAddress: this.searchForm.UserNameOrEmailAddress }; // 使用日期範圍選擇控制項,在查詢對象增加開始日期CreationTimeStart、結束日期CreationTimeEnd this.addDateRange(param, this.searchForm.creationTime) // 獲取產品列表,綁定到模型上,並修改分頁數量 this.listLoading = true loginlog.GetAll(param).then(data => { this.list = data.result.items this.pageinfo.total = data.result.totalCount this.listLoading = false }) },
2、介面訪問日誌
ABP框架是一個後端的Web API框架,因此需要跟蹤每個介面的具體訪問,包括具體的請求參數和結果等資訊,一般我們對介面進行跟蹤和優化管理等等。
ABP框架的介面訪問日誌,也是系統基礎提供的記錄日誌,它在每次系統介面被調用的時候攔截記錄,記錄資訊存儲在AbpAuditLogs中,同樣我們只需要提取出來進行展示即可。
具體的一條介面訪問日誌查看介面如下所示。
介面訪問日誌,也就是審計日誌的前端調用對象和登錄日誌的處理類似,只是根據需要增加一些實現的介面。
同樣介面的列表獲取展示邏輯JS程式碼如下所示。
getlist() { // 列表數據獲取 var param = { // 構造常規的分頁查詢條件 SkipCount: (this.pageinfo.pageindex - 1) * this.pageinfo.pagesize, MaxResultCount: this.pageinfo.pagesize, // 過濾條件 UserNameOrEmailAddress: this.searchForm.UserNameOrEmailAddress }; // 使用日期範圍選擇控制項,在查詢對象增加開始日期CreationTimeStart、結束日期CreationTimeEnd this.addDateRange(param, this.searchForm.creationTime) // 獲取產品列表,綁定到模型上,並修改分頁數量 this.listLoading = true auditlog.GetAll(param).then(data => { this.list = data.result.items this.pageinfo.total = data.result.totalCount this.listLoading = false }) },
3、實體修改歷史日誌
除了上面兩種日誌外,還有一種是在數據對象發生變化的時候,進行的記錄,叫做實體修改(變化)歷史記錄,記錄存放在表AbpEntityChanges、AbpEntityChangeSets和AbpEntityPropertyChanges中。
實體修改歷史日誌如下介面所示。
打開可以詳細查看實體類的屬性變化列表,如下介面所示。
以上這些類型的日誌,都是ABP框架基礎介面提供的攔截記錄日誌,我們只需要根據具體的對象獲取記錄進行展示即可,非常方便。