有条件地单独禁用 Serilog Sinks
Conditionally disable Serilog Sinks individually
我的 .net 核心应用程序基本配置上有 serilog,如下所示:-
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();
现在假设我希望根据条件写入 SomeOtherLog。怎么办呢?
类似
if(conditon)
.WriteTo.SomeOtherLog()
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);
if (condition)
{
configuration.WriteTo.SomeOtherLog();
}
Log.Logger = configuration.CreateLogger();
从 Serilog 2.9.0 开始,您现在可以使用 .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();
// ...
我的 .net 核心应用程序基本配置上有 serilog,如下所示:-
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();
现在假设我希望根据条件写入 SomeOtherLog。怎么办呢?
类似
if(conditon)
.WriteTo.SomeOtherLog()
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);
if (condition)
{
configuration.WriteTo.SomeOtherLog();
}
Log.Logger = configuration.CreateLogger();
从 Serilog 2.9.0 开始,您现在可以使用 .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();
// ...