控制台上的 Serilog 日志低于最低级别

Serilog logs on Console below minimum level

我用这种方式为控制台日志定义了一个 LogLevel FATAL 记录器:

            LoggerConfiguration logCfg = new LoggerConfiguration();
        logCfg
        .MinimumLevel.Debug()
        .MinimumLevel.Override("Microsoft", LogEventLevel.Error)
        .Enrich.FromLogContext()
        .Enrich.With(new UtcTimestampEnricher())
        .Enrich.WithProperty("SENDER", applicationName)

        //ToDo, extend the Logger for DB to log an active GUID
        //.Enrich.WithProperty("GUID", guid)
        .WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Fatal)
        .WriteTo.File(applicationLogPath,
                      restrictedToMinimumLevel: logEventLvlFile,
                      outputTemplate: fileOutputTemplate,
                      rollOnFileSizeLimit: changeOnFileSizeLimit,
                      fileSizeLimitBytes: fileSize,
                      retainedFileCountLimit: retainedFileCount);

但这将显示在控制台上:

 _logger.LogInformation("Worker pulling config at: {time}", DateTimeOffset.Now);

这是解决方案:

 foreach (ServiceDescriptor serviceDescriptor in logging.Services)
                {
                    if (serviceDescriptor.ImplementationType == typeof(Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider))
                    {
                        // remove ConsoleLoggerProvider service only
                        logging.Services.Remove(serviceDescriptor);
                        break;
                    }
                }
                logging.AddSerilog();