C# 使用 Serilog 將 Log 寫入 Loki

在昨天的文章中有示範 Linux 安裝 Grafana 和 Loki ,本篇就來示範將 C# 的 Log 資料寫入到 Loki 中,讓我們能夠在 Grafana 中檢視。

安裝套件

使用 .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

留言