私はserilogを使用して、すべてのWeb APIトレースイベントを1つのファイルに記録し、すべてのコードデバッグを次のコードで別のファイルに記録しています:
問題は、trace.json がデバッグ イベントもログに記録していることです。これは、minimumLevel フィルターが原因であると思われます。
イベントを 2 つのファイルに分割するにはどうすればよいですか?
この質問を試しましたが、ファイルがまったく書き込まれません。
最新のセリログバージョンを使用。
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);