app.UseSerilogRequestLogging() 方法不起作用

问题描述 投票:0回答:2

我正在使用 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();

这是我的日志文件

1

我尝试了很长时间但找不到任何解决方案。有人可以帮忙吗?

我尝试将“Microsoft.AspNetCore”的最低级别设置为 LogEventLevel.Warning,但在这种情况下没有日志。

logging middleware serilog serilog-sinks-file serilog-aspnetcore
2个回答
0
投票
    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"
      }
    },

-2
投票

请尝试在 SeriLog 配置中的 outputTemplate 中包含属性。

"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception} {Properties:j}"
© www.soinside.com 2019 - 2024. All rights reserved.