我们在.NET 6中工作,希望记录所有传入的请求。我们计划允许这主要是在DEV和测试环境,但潜在和暂时也在PROD。
新的HttpLogger听起来像一个完美的匹配。但是它将输出到标准的ILogger,在我们的例子中是弹性的。从探地雷达的原因来看,我们希望避免潜在敏感数据不受控制地暴露的情况。
有没有人有其他的解决方案:
我发现这篇关于读两遍身体的有趣文章,但没能让它发挥作用:https://codetalk.in/posts/2022/01/04/read-request-body-multiple-times-in-asp-dot-net-core
发布于 2022-09-26 10:59:59
您只需通过配置就可以做到这一点,例如在生产应用程序设置中,禁用弹性的HTTP日志记录,并为文件记录器启用它,类似的情况(实际上取决于您的记录器和配置):
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information"
},
"Elastic": {
"IncludeScopes": true,
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "None"
}
},
"File":
{
"IncludeScopes": true,
"LogLevel": {
"Default": "None",
"Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information"
}
}
}
}为了更具限制性,请将生产中的HttpLoggingOptions配置为不记录某些字段(例如)。
https://stackoverflow.com/questions/73801131
复制相似问题