循序漸進VUE+Element 前端應用開發(31)— 系統的日誌管理,包括登錄日誌、介面訪問日誌、實體變化歷史日誌

在一個系統的許可權管理模組中,一般都需要跟蹤一些具體的日誌,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框架基礎介面提供的攔截記錄日誌,我們只需要根據具體的對象獲取記錄進行展示即可,非常方便。