Serilog не принимает минимальный уровень для статических файлов, хостинга и ядра EF

#asp.net-core #entity-framework-core #serilog

#asp.net-core #entity-framework-core #serilog

Вопрос:

Я пытаюсь получить чистый журнал с Serilog из моего ASP.NET Основное приложение. Чтобы очистить некоторые запросы изображений и команды базы данных от ядра EF, я использую следующую фильтрацию:

 Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
    .MinimumLevel.Override("System", LogEventLevel.Information)
    .Enrich.FromLogContext()
    .WriteTo.Console(outputTemplate: "{Timestamp:o} [{Level:u3}] [{SourceContext}] {Site}: {Message}{NewLine}")
    .WriteTo.Logger(lc => lc
        .MinimumLevel.Information()
        .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
        .MinimumLevel.Override("System", LogEventLevel.Warning)
        .MinimumLevel.Override("Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware", LogEventLevel.Warning)
        .MinimumLevel.Override("Microsoft.AspNetCore.Hosting.Internal.WebHost", LogEventLevel.Warning)
        .MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", LogEventLevel.Error)
        .WriteTo.File("logs/log.txt", rollingInterval: RollingInterval.Hour, outputTemplate: "{Timestamp:o} [{Level:u3}] [{SourceContext}] {Site}: {Message}{NewLine}")
    )                
    .CreateLogger();
  

Ожидаемый результат — журнал консоли с большим количеством информации и файл журнала с гораздо меньшим количеством информации, потому что для Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware , Microsoft.AspNetCore.Hosting.Internal.WebHost и Microsoft.EntityFrameworkCore.Database.Command я установил новый MinimumLevel .

Но фактический результат заключается в том, что все INFORMATION журналы Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware , Microsoft.AspNetCore.Hosting.Internal.WebHost и Microsoft.EntityFrameworkCore.Database.Command по-прежнему присутствуют в файле.