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

时间:2019-09-21 08:10:09

标签: 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]请求启动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.16ms 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.5631ms 200(791a596a)中完成

我不记录这些。它应该只在我要登录时才登录,例如在我的控制器中

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

1 个答案:

答案 0 :(得分:2)

将以下代码行添加到启动程序的构造器中

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

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

相关问题