控制台上的 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();
我用这种方式为控制台日志定义了一个 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();