1

我正在使用 ASP.NET Core 3.1,我已经包含了 serilog“Serilog.AspNetCore”3.2.0 版的 nuget。

配置为记录到文件如下:

    Log.Logger = new LoggerConfiguration()
       .MinimumLevel.Information()
       .WriteTo.File("C:\\ProgramData\\MySolution\\MyLog.txt",
          rollOnFileSizeLimit: true,
          fileSizeLimitBytes: 2000,
          retainedFileCountLimit: 5)
       .CreateLogger();

在我的代码中,我使用代码登录Log.Information("Starting up");

当我查看日志时,我得到了很多关于我真的不需要在日志中看到的请求的数据

例子:

2020-03-18 12:19:27.355 +05:30 [INF] 内容根路径:C:\R\Path\MyProject.Notification

2020-03-18 12:19:27.486 +05:30 [INF] 请求开始 HTTP/2.0 GET https://localhost:44360/swagger/index.html

2020-03-18 12:19:27.707 +05:30 [INF] 请求在 227.3113ms 200 text/html;charset=utf-8 中完成

2020-03-18 12:19:27.909 +05:30 [INF] 请求启动 HTTP/2.0 GET https://localhost:44360/swagger/v1/swagger.json

2020-03-18 12:19:28.064 +05:30 [INF] 请求在 154.5787 毫秒内完成 200 application/json;charset=utf-8

2020-03-18 12:19:41.221 +05:30 [INF] 请求开始 HTTP/2.0 GET https://localhost:44360/Client/Index

2020-03-18 12:19:41.238 +05:30 [INF] 授权成功。

我真的不需要所有这些日志,但我只想记录我使用内部Log.Information("log content")控制器操作方法指定的日志。

我怎样才能做到这一点?

4

1 回答 1

1

如 Ruben 的链接所示,为 AspNetCore 添加覆盖,如下所示:

Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Warning)

这将抑制许多不需要的消息。

于 2021-07-06T08:37:27.793 回答