提问人:Matteo Devigili 提问时间:3/22/2022 更新时间:10/10/2023 访问量:665
Serilog 未从配置文件获取 Seq 配置
Serilog doesn't get Seq configuration from configuration file
问:
我正在从这个配置文件中读取 serilog 和 seq 配置。
{
"clientId": "...",
"secret": "...",
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.AspNetCore.Authentication": "Information",
"System": "Warning",
"Hangfire": "Information"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "//tmp//infinitys//logs//qms//log-.txt",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}",
"rollingInterval": "Day",
"retainedFileCountLimit": 7
}
},
{
"Name": "Seq",
"Args": {
"serverUrl": "http://seq:5341"
}
}
],
"Enrich": [
"WithMachineName",
]
}
}
当我尝试设置记录器时,似乎没有读取 Seq 部分,只有 rollign 文件部分在工作。
var logger = new LoggerConfiguration().ReadFrom.Configuration(config)
.CreateLogger();
如果我像这样手动添加 seq 配置,它可以工作:
var logger = new LoggerConfiguration().ReadFrom.Configuration(config)
.WriteTo.Seq("http://localhost:5341").Enrich.WithMachineName().Enrich.WithProperty("ClientId:", config.GetSection("clientId").Value)
.CreateLogger();
问题是我需要对不同的环境进行不同的配置。
我在配置文件中是否遗漏了某些内容?
答:
0赞
Nick Cipollina
10/10/2023
#1
您缺少配置中告诉 Serilog 您正在使用 Seq Sink 的部分。Using
{
"clientId": "...",
"secret": "...",
"Serilog": {
"Using": [
"Serilog.Sinks.Seq"
],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.AspNetCore.Authentication": "Information",
"System": "Warning",
"Hangfire": "Information"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "//tmp//infinitys//logs//qms//log-.txt",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}",
"rollingInterval": "Day",
"retainedFileCountLimit": 7
}
},
{
"Name": "Seq",
"Args": {
"serverUrl": "http://seq:5341"
}
}
],
"Enrich": [
"WithMachineName",
]
}
}
评论
logger.Information("test")