Asp.net web api ASP.NET Web API管道中的Serilog自定义充实器

Asp.net web api ASP.NET Web API管道中的Serilog自定义充实器,asp.net-web-api,serilog,Asp.net Web Api,Serilog,Serilog自定义Enricher在Web API管道中何时执行 我注意到,根据是否有日志事件(即log.Debug()、log.Warning()等),方法public void Enrich(LogEvent LogEvent、ILogEventPropertyFactory propertyFactory)被调用一次或两次。如果我有一个日志事件,它会被调用两次——Http请求和Http响应处理。如果没有日志事件,则只调用一次,这是在HTTP响应处理期间。每次调用将日志事件写入日志时,Se

Serilog自定义Enricher在Web API管道中何时执行


我注意到,根据是否有日志事件(即log.Debug()、log.Warning()等),方法public void Enrich(LogEvent LogEvent、ILogEventPropertyFactory propertyFactory)被调用一次或两次。如果我有一个日志事件,它会被调用两次——Http请求和Http响应处理。如果没有日志事件,则只调用一次,这是在HTTP响应处理期间。

每次调用将日志事件写入日志时,Serilog Enricher都会运行(只要启用了事件日志类型)

e、 g

将向日志中写入3个日志事件,这将导致所有配置为调用3次的Enricher,每个事件调用一次,以充实每个事件


当然,如果您将Serilog连接到ASP.NET请求管道,ASP.NET日志消息将被转发到Serilog,这也将导致Enricher被每次调用,甚至每次写入…

@mason-我更新了我的问题,希望它能澄清问题。这是有意义的。谢谢你对这方面的见解!
Log.Information("hey1");
Log.Warning("hey2");
Log.Debug("hey3");