c# - 使用serilog关闭asp.net core 2.2中的mvc请求日志记录

标签 c# asp.net-core asp.net-core-webapi serilog

我正在使用 Serilog.Extensions.Logging.File 来记录文件。

这是我的 appsettings.json 文件:

  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Information",
      "System": "None",
      "Microsoft": "None"
    }
  },
  "LoggingFile": {
    "IncludeScopes": false,
    "pathFormat": "C:/logs/APILogs-{Date}.log",
    "LogLevel": {
      "Default": "Trace",
      "System": "None",
      "Microsoft": "None"
    }
  }

我的 Startup.cs 代码:

public void Configure(
            IApplicationBuilder app, 
            IHostingEnvironment env, 
            IApiVersionDescriptionProvider provider,
            ILoggerFactory loggerFactory)
        {
            // Removed other codes
            loggerFactory.AddFile(Configuration.GetSection("LoggingFile"));
        }

但它仍然记录 mvc 请求信息,如下所示:

2019-09-21T13:28:59.6337460+05:30 80000019-0004-ff00-b63f-84710c7967bb [INF] Request starting HTTP/1.1 GET http://localhost:53534/api/values (ca22a1cb)

2019-09-21T13:28:59.8309629+05:30 80000019-0004-ff00-b63f-84710c7967bb [INF] Request finished in 202.16ms 200 (791a596a)

2019-09-21T13:29:00.1500727+05:30 8000001a-0004-ff00-b63f-84710c7967bb [INF] Request starting HTTP/1.1 GET http://localhost:53534/favicon.ico (ca22a1cb)

2019-09-21T13:29:00.2020227+05:30 8000001a-0004-ff00-b63f-84710c7967bb [INF] Request finished in 73.5631ms 200 (791a596a)

我不想记录这些。它应该只在我想记录时记录,比如在我的 Controller 中

_logger.LogInformation("Hello Info");
_logger.LogError("Hello error");

最佳答案

在启动的构造函数中添加如下代码

Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .MinimumLevel.Override("Microsoft", LogEventLevel.Error)
            .MinimumLevel.Override("System", LogEventLevel.Error)
            .Enrich.FromLogContext()
            .WriteTo.RollingFile("C:/logs/APILogs-{Date}.log")
            .CreateLogger();

然后在配置方法中,添加以下行。

loggerFactory.AddSerilog();

更多信息:Serilog

您可以从应用程序设置中删除配置。

关于c# - 使用serilog关闭asp.net core 2.2中的mvc请求日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58038428/

相关文章:

c# - 在达到流畅的验证实现 C# 之前,如何避免 MVC 验证引发的错误

ASP.NET Core Web Api 自动帮助页面

c# - 如何让 .NET WinForms 组件使用 SET 时区而不是客户端时区?

asp.net-core - 如何在 ASP.NET Core 中为 wwwroot 配置替代文件夹?

unit-testing - 如何在VS 2017 .net core项目中生成单元测试用例?

c# - 在 ASP.NET Core 中获取浏览器语言?

c# - 如何将类库引用包含到 docker 文件中

c# - 以下通过关闭取消订阅事件的模式会导致任何问题吗?

c# - 如何为 .NET Core 控制台应用程序创建 exe?

c# - 在 C#/.Net 中解析 Lua 数据结构的最简单方法