在昨天的文章中有示範 Linux 安裝 Grafana 和 Loki ,本篇就來示範將 C# 的 Log 資料寫入到 Loki 中,讓我們能夠在 Grafana 中檢視。
使用 .NET CLI 安裝 Serilog.Sinks.Grafana.Loki 套件:
如果想要在指令視窗中輸出 Log 的話再安裝 Serilog.Sinks.Console 套件:
程式碼範例:
在 Grafana 的 Explore 中,選擇 Loki ,就可以找到剛剛上傳的資料了!
參考資料:
GitHub - Serilog.Sinks.GrafanaLoki
安裝套件
使用 .NET CLI 安裝 Serilog 套件:
dotnet add package Serilog
使用 .NET CLI 安裝 Serilog.Sinks.Grafana.Loki 套件:
dotnet add package Serilog.Sinks.Grafana.Loki
如果想要在指令視窗中輸出 Log 的話再安裝 Serilog.Sinks.Console 套件:
dotnet add package Serilog.Sinks.Console
程式碼範例:
using Serilog;
using Serilog.Sinks.Grafana.Loki;
string grafanaLokiUrl = "http://192.168.0.41:3100"; // 替換為 Loki 的網址, port 預設是 3100
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose() // 設定最低顯示層級 預設: Information
.WriteTo.Console() // 輸出到 指令視窗 (需要安裝 Serilog.Sinks.Console 套件)
.WriteTo.GrafanaLoki(grafanaLokiUrl, new List<LokiLabel>() // 輸出到 Grafana Loki
{
new LokiLabel // 自定義標籤
{
Key = "app",
Value = "ConsoleAppGrafanaLokiTest1203",
},
new LokiLabel // 自定義標籤
{
Key = "env",
Value = "dev",
},
})
.CreateLogger();
// 訊息範例
Log.Information("資訊");
Log.Warning("警告");
Log.Error("錯誤1");
Log.Error(new Exception("例外"), "錯誤2");
Log.CloseAndFlush(); // 程式結束時關閉和釋放 log 檔案
在 Grafana 的 Explore 中,選擇 Loki ,就可以找到剛剛上傳的資料了!
參考資料:
GitHub - Serilog.Sinks.GrafanaLoki
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com