seriog重复日志语句



使用下面的nuget包获取下面的日志

  • Serilog。AspNetCore
  • Serilog.Settings.Configuration
  • Serilog.Sinks.Console

控制台日志
Hosting environment: Local
15:44:33.961 +05:30 [Information] [] Serilog Initialized.
[15:44:33 INF] Serilog Initialized.
15:44:36.056 +05:30 [Information] [Serilog.AspNetCore.RequestLoggingMiddleware] HTTP "GET" "/swagger/index.html" responded 200 in 188.0470 ms
[15:44:36 INF] HTTP GET /swagger/index.html responded 200 in 188.0470 ms
15:44:36.557 +05:30 [Information] [Serilog.AspNetCore.RequestLoggingMiddleware] HTTP "GET" "/swagger/v1/swagger.json" responded 200 in 326.6425 ms
[15:44:36 INF] HTTP GET /swagger/v1/swagger.json responded 200 in 326.6425 ms

AppSetting.json

"Serilog": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Error",
"Microsoft.AspNetCore": "Error",
"System": "Error"
}
},
"Enrich": [
"FromLogContext",
"WithEnvironmentName",
"WithMachineName"
],
"WriteTo": [
{
"Name": "Console",
"Args": {
"outputTemplate": "{Timestamp:HH:mm:ss.fff zzz} [{Level}] [{SourceContext}] {Message}{NewLine}{Exception}"
}
}
],
"Properties": {
"ApplicationName": "MinimalApi-Local"
}
},

Program.cs

builder.Services.AddLogging(logger =>
{
logger.ClearProviders();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
logger.AddSerilog();
Log.Logger.Information("Serilog Initialized.");
});

builder.Host.UseSerilog();
var app = builder.Build();
app.UseSerilogRequestLogging();

默认的日志配置已经从appsetting.json中删除。请帮我删除默认的微软日志记录行为,只允许Serilog日志

您需要删除WriteTo。cs中的控制台,输出到控制台副本,因为您有两个WriteTo。控制台,一个来自appSetting。Json,一个来自

builder.Services.AddLogging(logger =>
{
logger.ClearProviders();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.Enrich.FromLogContext()
.CreateLogger();
logger.AddSerilog();
Log.Logger.Information("Serilog Initialized.");
});

builder.Host.UseSerilog();
var app = builder.Build();
app.UseSerilogRequestLogging();

最新更新