在ASP.NET Core 2.2中使用Serilog关闭MVC请求日志记录

4

我正在使用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] 请求开始 HTTP/1.1 GET http://localhost:53534/api/values (ca22a1cb)

2019-09-21T13:28:59.8309629+05:30 80000019-0004-ff00-b63f-84710c7967bb [INF] 请求结束,用时202.16毫秒,状态码200 (791a596a)

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

2019-09-21T13:29:00.2020227+05:30 8000001a-0004-ff00-b63f-84710c7967bb [INF] 请求结束,用时73.5631毫秒,状态码200 (791a596a)

我不想记录这些。它应该只在我想要记录时记录,例如在我的控制器中。
_logger.LogInformation("Hello Info");
_logger.LogError("Hello error");
1个回答

12
在启动程序的构造函数中添加以下代码行。
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

您可以从appsettings中删除配置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接