我正在使用 IApplicationBuilder.UseSerilogRequestLogging() 进行请求日志记录。我已将文件配置为接收器。但它不起作用。我可以看到所有其他日志事件,但没有由 UseSerilogRequestLogging() 生成的事件日志。即使我从中间件管道中删除此方法,日志也是相同的。我尝试将“Microsoft.AspNetCore”的最低级别设置为 LogEventLevel.Warning,但在这种情况下没有日志。
我已经安装了 Serilog、Serilog.AspNetCore nudget 包。
下面是我的programe.cs代码
var builder = WebApplication.CreateBuilder(args);
var logger = new LoggerConfiguration()
.WriteTo.File("Logs.txt")
.CreateLogger();
builder.Host.UseSerilog(logger);
var app = builder.Build();
app.UseSerilogRequestLogging();
这是我的日志文件
我尝试了很长时间但找不到任何解决方案。有人可以帮忙吗?
我尝试将“Microsoft.AspNetCore”的最低级别设置为 LogEventLevel.Warning,但在这种情况下没有日志。
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.Enrich.FromLogContext()
.CreateLogger();
builder.Host.UseSerilog();
app.UseSerilogRequestLogging();
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft.AspNetCore": "Warning",
"System": "Warning"
}
},
请尝试在 SeriLog 配置中的 outputTemplate 中包含属性。
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception} {Properties:j}"