背景
们开发忽略掉的一点(而且是更加重要的一点)是:我们有没有在日志中泄露一些个人隐私数据(Personally Identifiable Information, PII)? 敏感数据不应该直接被记录到日志中,至少是需要经过加www.easck.com密或者混淆的。怎么用
这个中间件的用法非常简单,两个方法,六个可以配置的选项:
引入中间件
在Program.cs 的 app.MapControllers();之前添加中间件:
Program.cs// 省略其他app.UseHttpLogging();app.MapControllers();
当我们使用默认配置的时候,来随便找一个接口看一下效果:
请求日志

所有默认配置下不记录日志的字段都以[Redacted]代替,下面我们可以更改默认配置以显示更多内容:
配置服务
Program.cs
// http://www.easck.com省略其他...builder.Services.AddControllers();builder.Services.AddHttpLogging(options =>{ // 日志记录的字段配置,可以以 | 连接 options.LoggingFields = HttpLoggingFields.All; // 增加请求头字段记录 options.RequestHeaders.Add("Sec-Fetch-Site"); options.RequestHeaders.Add("Sec-Fetch-Mode"); options.RequestHeaders.Add("Sec-Fetch-Dest"); // 增加响应头字段记录 options.ResponseHeaders.Add("Server"); // 增加请求的媒体类型 options.MediaTypeOptions.AddText("application/javascript"); // 配置请求体日志最大长度 options.RequestBodyLogLimit = 4096; // 配置响应体日志最大长度 options.ResponseBodyLogLimit = 4096;});同样的请求我们再来看看效果:
请求日志,注意红框标记的信息现在已经显示了

总结
可以看到,这个中间件使用起来是比较简单的。
参考资料
HTTP Logging in ASP.NET Core
.NET 6 中的 Http Logging 中间件
到此这篇关于.NET 6tcsshNksh开发TodoList应用之请求日志组件HttpLogging介绍的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。








