.NET 6 使用 LogDashboard 視覺化日誌

我本梁人發表於2023-12-07

在上一篇中我使用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

img

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
img

而且日誌模型中必須包含以下5個屬性才會被LogDashboard解析
img

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

5. 效果展示

訪問地址:http://127.0.0.1:7128/logdashboard
首頁
img
日誌列表
img
日誌詳情
img

6. 遺憾之處

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

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

查詢的方法是這樣寫的,有知道的大佬幫忙解答一下
img
2.表名不支援自定義,只能使用預設的Log表名

相關文章