.net core 有条件地分别禁用Serilog接收器
我在.net核心应用程序基本配置上的serilog如下所示:-.net core 有条件地分别禁用Serilog接收器,.net-core,serilog,.net Core,Serilog,我在.net核心应用程序基本配置上的serilog如下所示:- Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(Configuration) .Enrich.FromLogContext() .WriteTo.File(@"./logs/log-.log", rollingInterval: RollingInterval.Day, outputTemplate: LOG
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.Enrich.FromLogContext()
.WriteTo.File(@"./logs/log-.log", rollingInterval: RollingInterval.Day, outputTemplate: LOG_TEMPLATE)
.WriteTo.Console(outputTemplate: LOG_TEMPLATE, theme: AnsiConsoleTheme.Literate)
.WriteTo.SomeOtherLog()
.CreateLogger();
现在让我们假设我希望根据条件写入其他日志。那怎么办呢
差不多
if(conditon)
.WriteTo.SomeOtherLog()
var配置=新日志配置()
.ReadFrom.Configuration(配置)
.Enrich.FromLogContext()的
.WriteTo.File(@“/logs/log-.log”,rollingInterval:rollingInterval.Day,
输出模板:日志(模板)
.WriteTo.Console(输出模板:LOG_模板,主题:AnsiConsoleTheme.Literate);
如果(条件)
{
configuration.WriteTo.SomeOtherLog();
}
Log.Logger=configuration.CreateLogger();
从开始,您现在可以使用.WriteTo.Conditional
并指定定义是否写入接收器的条件
Log.Information("Hello");
Log.CloseAndFlush();
var configuration = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.Enrich.FromLogContext()
.WriteTo.File(@"./logs/log-.log", rollingInterval: RollingInterval.Day,
outputTemplate: LOG_TEMPLATE)
.WriteTo.Console(outputTemplate: LOG_TEMPLATE, theme: AnsiConsoleTheme.Literate)
.WriteTo.Conditional(evt => condition, wt => wt.SomeOtherLog());
Log.Logger = configuration.CreateLogger();
// ...
谢谢,我真不敢相信我错过了。请检查以下答案: