.NET 6 使用 LogDashboard 視覺化紀錄檔

2023-12-07 18:00:20

在上一篇中我使用Nlog記錄紀錄檔到了資料庫,接下來我們進行紀錄檔的視覺化展示

1. 關於LogDashboard

logdashboard是在github上開源的aspnetcore專案, 它旨在幫助開發人員排查專案執行中出現錯誤時快速檢視紀錄檔排查問題

Tips: 專案已經有兩年沒有更新了

官網地址 https://logdashboard.net/
線上演示地址 https://logdashboard.net/logdashboard
檔案地址 https://doc.logdashboard.net/
GitHub地址 https://github.com/realLiangshiwei/LogDashboard

2. 安裝LogDashboard

3.Program.cs

   //獲取appsettings.json 檔案中的資料庫連線字串
    var connectionString = builder.Configuration.GetConnectionString("Context");
   // 新增紀錄檔面板 
   builder.Services.AddLogDashboard(options =>
   {
       options.UseDataBase(() => new SqlConnection(connectionString));
       //自定義資料模型
       options.CustomLogModel<CustomLogModel>();
   });

   //啟用紀錄檔面板
   app.UseLogDashboard();

4. 修改Nlog表結構與表名

由於LogDashboard需要通過表名Log(從原始碼中我們可以看到不支援自定義表名)來獲取資料,所以我們需要修改Nlog的表名稱為Log

而且紀錄檔模型中必須包含以下5個屬性才會被LogDashboard解析

圖中的LongDate與上一篇中的欄位Logged 是一樣的,都是記錄紀錄檔的時間,所以我們將表欄位改為Logged,並修改nlog.config檔案中的設定

5. 效果展示

存取地址:http://127.0.0.1:7128/logdashboard
首頁

紀錄檔列表

紀錄檔詳情

6. 遺憾之處

1.紀錄檔列表中篩選紀錄檔等級時除了All查詢出來有資料之外,其他等級都無法查詢出資料
通過檢視網路請求及原始碼,檢視到傳遞的引數是大寫

但即使資料庫中的Level欄位是大寫,還是查詢不出來資料

查詢的方法是這樣寫的,有知道的大佬幫忙解答一下

2.表名不支援自定義,只能使用預設的Log表名