我正在使用 serilog 将所有 Web API 跟踪事件记录到一个文件中,并通过以下代码将所有代码调试到另一个文件中:
问题是 trace.json 也在记录调试事件,我怀疑这是因为 minimumLevel 过滤器。
如何将事件分成两个文件?
试过这个问题,但它根本不写文件。
使用最新的 serilog 版本。
Log.Logger = new LoggerConfiguration()
.WriteTo.Trace(outputTemplate: "{Timestamp} [{Level}] ({HttpRequestId}|{UserName}) {Message}{NewLine}{Exception}")
.MinimumLevel.Debug()
.WriteTo.Sink(new FileSink(@"E:\log.json", new JsonFormatter(false, null, true), null), LogEventLevel.Debug)
.MinimumLevel.Verbose()
.WriteTo.Sink(new FileSink(@"E:\trace.json", new JsonFormatter(false, null, true), null), LogEventLevel.Verbose)
.Enrich.With<HttpRequestIdEnricher>()
.Enrich.With<UserNameEnricher>()
.Enrich.WithProperty("App", "CarbonFactoryERP")
.CreateLogger();
以下是我如何调用记录器:
Log.Logger.Debug("Web API Register Method started at {TimeStamp}",DateTime.UtcNow);
Log.Logger.Verbose("{TimeStamp} {Operation} {Operator} {Message} {Category}", rec.Timestamp, rec.Operation, rec.Operator, rec.Message, rec.Category);