You can do this by first making sure the performance counter events are tagged with either a particular property value (OpenMappedContext()
in LibLog) or from a particular type/namespace.
var log = LogProvider.For<MyApp.Performance.SomeCounter>()
log.Info(...);
When configuring Serilog, a sub-logger with filter applied can send just the required events to the second file.
Log.Logger = new LoggerConfiguration()
.WriteTo.Logger(lc => lc
.Filter.ByExcluding(Matching.FromSource("MyApp.Performance"))
.WriteTo.File("first.json", new JsonFormatter()))
.WriteTo.Logger(lc => lc
.Filter.ByIncludingOnly(Matching.FromSource("MyApp.Performance"))
.WriteTo.File("second.json", new JsonFormatter()))
.CreateLogger();
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…