分享程式代碼相關筆記
目前文章總數:157 篇
最後更新:2024年 12月 07日
打開Nuget安裝套件 Serilog.Sinks.Graylog
打開Nuget安裝套件 Serilog
打開專案的Program.cs 設定啟動Log配置,依照下方3步驟。
並添加一些Log內容,預期發送到Server有訊息: MilkTeaGreen Test GrayLogSendLogExample Log
//1. 引用
using Serilog;
using Serilog.Events;
using Serilog.Sinks.Graylog;
var builder = WebApplication.CreateBuilder(args);
//2. builder 後建立Log
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()//最小為Infomation
.WriteTo.Graylog(new GraylogSinkOptions()//輸出到 Graylog
{
HostnameOrAddress = builder.Configuration.GetSection("Graylog:Host").Value,
Port = int.Parse(builder.Configuration.GetSection("Graylog:Port").Value),
})
.CreateLogger();
//3. 寫點Log內容
Log.Information($@"MilkTeaGreen Test GrayLogSendLogExample Log");
\\配置其他app configure...
打開專案的設定檔案 appsettings.json ,添加Host與Port
※這邊的Host與Port是自己遠端的GrayLog Server位址
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
// 這裡添加GrayLog 配置
"Graylog": {
"Host": "192.168.51.62",
"Port": 12201
},
"AllowedHosts": "*"
}
設定完成後,啟動專案
登入GrayLog Server 查看,可以得到我們預期的Log
打開Nuget安裝套件 Serilog.Sinks.File
打開專案的Program.cs 設定啟動Log配置,目的是寫Log在本地,並且用Level來分資料夾
原本第一部分的代碼,添加了4-1, 4-2, 4-3
並添加一些Log內容,預期本地會記錄 Infomation、Error的Log,並且依照日期新增。
//1. 引用
using Serilog;
using Serilog.Events;
using Serilog.Sinks.Graylog;
var builder = WebApplication.CreateBuilder(args);
//2. builder 後建立Log
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()//最小層級是Infomation
//4-1. 建立以等級區分的資料夾,並且都是用天數來記錄
.WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Information)
.WriteTo.File(@"Logs\Info\Info.log", rollingInterval: RollingInterval.Day))
.WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error)
.WriteTo.File(@"Logs\Error\Error.log", rollingInterval: RollingInterval.Day))
.WriteTo.Graylog(new GraylogSinkOptions()//輸出到 Graylog
{
HostnameOrAddress = builder.Configuration.GetSection("Graylog:Host").Value,
Port = int.Parse(builder.Configuration.GetSection("Graylog:Port").Value),
})
.CreateLogger();
//3. 寫點Log內容
Log.Information($@"MilkTeaGreen Test GrayLogSendLogExample Log");
//4-2. Information 本地
Log.Information($@"MilkTeaGreen Test GrayLogSendLogExample Log => INF");
//4-3. Error 本地
Log.Error($@"MilkTeaGreen Test GrayLogSendLogExample Log => ERR");
\\配置其他app configure...
設定完成後,啟動專案
可以看到我們產生 Logs資料夾,且下面會有兩種Level的Log (因為配置只設定這兩種)
Information的Log
Error的Log