在上一篇 使用 Docker Compose 快速建立 Graylog 日誌管理系統 中已經使用 docker compose 安裝好 Graylog ,本篇就來示範將 C# 中的 log 檔案寫入到 Graylog 中。
在彈出的視窗中輸入標題,點選 Launch Input
安裝 Serilog.Sinks.Console 套件,用於將指令顯示在 Console 的套件,方便除錯:
安裝將 Serilog 的 log 寫入到 Graylog 的套件 Serilog.Sinks.Graylog
就可以直接在網頁上看到了!
延伸閱讀: C# 最簡單使用 Serilog 寫 Log (不用設定檔)
接收資料輸入
Graylog 預設不會接收資料輸入,雖然在上一篇有開啟接收 API 的資料輸入,不過這次的是需要另外開啟。點選上方的 System > Inputs ,選擇 GELF UDP,點選 Launch new input在彈出的視窗中輸入標題,點選 Launch Input
安裝相關套件
先使用 NuGet 安裝主要寫 log 的 Serilog 套件,或是使用 .NET CLI 執行以下指令安裝
dotnet add package Serilog
安裝 Serilog.Sinks.Console 套件,用於將指令顯示在 Console 的套件,方便除錯:
dotnet add package Serilog.Sinks.Console
安裝將 Serilog 的 log 寫入到 Graylog 的套件 Serilog.Sinks.Graylog
dotnet add package Serilog.Sinks.Graylog
輸出 log
在 Serilog 中只要多加上 WriteTo.Graylog 就可以很容易的將 log 送到 Graylog 中了
using Serilog;
using Serilog.Sinks.Graylog;
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose() // 設定最低顯示層級 預設: Information
.WriteTo.Console() // 輸出到 指令視窗
.WriteTo.Graylog(new GraylogSinkOptions() // 輸出到 Graylog
{
HostnameOrAddress = "localhost",
Port = 12201,
})
.CreateLogger();
// 訊息範例
Log.Information("資訊");
Log.Warning("警告");
Log.Error("錯誤1");
Log.Error(new Exception("例外"), "錯誤2");
Log.CloseAndFlush(); // 程式結束時關閉和釋放 log 檔案
就可以直接在網頁上看到了!
http://localhost:9000/search
延伸閱讀: C# 最簡單使用 Serilog 寫 Log (不用設定檔)
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com