ASP.NET Core: как отключить ведение журнала для статических файлов?

Я использую ASP.NET Core 2.2 с Angular 8 для своего проекта,

Я обслуживаю статические файлы angular из моего основного проекта.net с использованием расширений SPA, например:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSpaStaticFiles(options =>
    {
        options.RootPath = "ClientApp/dist";
    });
}

public void Configure(IApplicationBuilder app){
   app.UseSpa(spa =>
   {
        spa.Options.SourcePath = "ClientApp";
   });
}

Моя проблема в том, что мои журналы содержат все запросы, касающиеся внутреннего или внешнего сервера, то есть я нахожу много журналов для маршрутов, например:

https://example.com/index.html

https://example.com/assets/images/logo.svg

Что действительно раздражает, мне не нужны логи внешнего сервера (статические файлы)!

У меня есть один общий регистратор в моем пользовательском промежуточном программном обеспечении, определенный следующим образом:

public CustomRequestMiddleware(RequestDelegate next, ILoggerFactory loggerFactory)
{
    _next = next;
    _logger = loggerFactory.CreateLogger("My Logger");
}

Я могу отключить его журналы из файла appsettings.json следующим образом:

  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "None",
      "Microsoft": "None",
      "Hangfire": "None",
      "My Logger": "None"
    }
  }

Но проблема в том, что этот регистратор используется для всех запросов к системе, включая журналы внешнего интерфейса (статические файлы) и серверного интерфейса (API), и мне нужно только отключить ведение журнала для журналов внешнего интерфейса.

Есть ли способ фильтровать журналы?

1 ответ

Вы можете решить проблему, добавив код «Microsoft.AspNetCore.Hosting.Diagnostics»: «None» в раздел журнала файла appsetting.json.

Другие вопросы по тегам