如何在 serilog 日志文件名中使用 属性 值?
How do I use a property value in serilog log file name?
如果我有以下代码:
.WriteTo.Logger(c =>
c.Filter.ByIncludingOnly(Matching.WithProperty("tsBatchStarted"))
.WriteTo.File(
path: Path.Combine(
baseDir,
"App_Data",
"logs",
$"SERCrawlerLog_{tsBatchStarted}.txt")
, restrictedToMinimumLevel: LogEventLevel.Information
, outputTemplate: logTextTemplate
//, rollingInterval: RollingInterval.Day
, retainedFileCountLimit: 2
, shared: true
) // end .WriteTo.Logger(c =>
我想在文件名中使用 属性 的 tsBatchStarted
值...
如何使用事件的 属性 值 in serilog 的 日志文件名?
dotnet add package Serilog.Sinks.Map
然后:
.WriteTo.Logger(c => c
.Filter.ByIncludingOnly(Matching.WithProperty("tsBatchStarted"))
.WriteTo.Map(
"tsBatchStarted",
"none",
(tsBatchStarted, wt) => wt.File(
path: Path.Combine(
baseDir,
"App_Data",
"logs",
$"SERCrawlerLog_{tsBatchStarted}.txt"),
restrictedToMinimumLevel: LogEventLevel.Information,
outputTemplate: logTextTemplate,
shared: true
),
sinkMapCountLimit: 2
)
) // end .WriteTo.Logger(c =>
请注意,这不会导致文件滚动,您需要使用基于应用程序的机制来清理旧批次的日志。
如果我有以下代码:
.WriteTo.Logger(c =>
c.Filter.ByIncludingOnly(Matching.WithProperty("tsBatchStarted"))
.WriteTo.File(
path: Path.Combine(
baseDir,
"App_Data",
"logs",
$"SERCrawlerLog_{tsBatchStarted}.txt")
, restrictedToMinimumLevel: LogEventLevel.Information
, outputTemplate: logTextTemplate
//, rollingInterval: RollingInterval.Day
, retainedFileCountLimit: 2
, shared: true
) // end .WriteTo.Logger(c =>
我想在文件名中使用 属性 的 tsBatchStarted
值...
如何使用事件的 属性 值 in serilog 的 日志文件名?
dotnet add package Serilog.Sinks.Map
然后:
.WriteTo.Logger(c => c
.Filter.ByIncludingOnly(Matching.WithProperty("tsBatchStarted"))
.WriteTo.Map(
"tsBatchStarted",
"none",
(tsBatchStarted, wt) => wt.File(
path: Path.Combine(
baseDir,
"App_Data",
"logs",
$"SERCrawlerLog_{tsBatchStarted}.txt"),
restrictedToMinimumLevel: LogEventLevel.Information,
outputTemplate: logTextTemplate,
shared: true
),
sinkMapCountLimit: 2
)
) // end .WriteTo.Logger(c =>
请注意,这不会导致文件滚动,您需要使用基于应用程序的机制来清理旧批次的日志。