.net NET内核:过滤请求日志并将它们发送到单独的接收器

.net NET内核:过滤请求日志并将它们发送到单独的接收器,.net,asp.net-core,serilog,.net,Asp.net Core,Serilog,我想将我的请求日志保存在一个单独的日志文件中。我似乎找不到一种方法来过滤请求登录跟踪app.useserlogrequestlogging() 有没有办法做到这一点?我没有找到任何文件 这就是我试图使用的API,尽管我没有找到任何属性表明该事件是一个请求日志事件 .WriteTo.Logger(config => config .MinimumLevel.Verbose() .Filter.ByIncludingOnly(e => e.Level ==

我想将我的请求日志保存在一个单独的日志文件中。我似乎找不到一种方法来过滤请求登录跟踪
app.useserlogrequestlogging()

有没有办法做到这一点?我没有找到任何文件

这就是我试图使用的API,尽管我没有找到任何属性表明该事件是一个请求日志事件

.WriteTo.Logger(config => config
        .MinimumLevel.Verbose()
        .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Debug)

来自
useserlogrequestlogging
的请求日志都具有相同的模板,因此您可以使用:

.Filter.ByIncludingOnly(e=>e.MessageTemplate.Text==
“HTTP{RequestMethod}{RequestPath}在{appeased:0.0000}毫秒内响应了{StatusCode}”)
(假设您使用的是默认模板。)

或者,由于他们都来自同一个阶级:

var requestLogs=Matching.FromSource(“Serilog.AspNetCore.RequestLoggingMiddleware”);
// ... 然后:
.Filter.ByIncludingOnly(请求日志)

谢谢,这非常有帮助。我可以使用WriteTo.Logger进行分支。