想旅行的野马 · JSON.stringify和JSON.pa ...· 1 年前 · |
心软的紫菜汤 · 这款 Python ...· 1 年前 · |
近视的跑步鞋 · python ...· 1 年前 · |
越狱的蚂蚁 · 将一个字段拆分为多个字段 - Tableau· 1 年前 · |
我正在使用.NET 6构建一个API,并计划使用Serilog作为记录器。根据 https://onloupe.com/blog/serilog-vs-mel/ ,有两种可能性:
一方面,只使用Serilog有一个缺点,就是我的代码库中的所有内容都需要依赖Serilog,所以结合使用它和Microsoft.Extensions.Logging应该提供更多的灵活性。
另一方面,在 https://github.com/serilog/serilog-extensions-logging 上,他们显然建议将 https://github.com/serilog/serilog-aspnetcore 用于.NET核心项目:
ASP.NET核心应用程序应该更喜欢Serilog.AspNetCore和UseSerilog()。
有人知道提出这项建议的理由吗?我觉得这个建议在灵活性方面是矛盾的?
发布于 2022-05-28 08:39:17
我认为建议:
ASP.NET核心应用程序应该更喜欢Serilog.AspNetCore和UseSerilog()。
并不是说在应用程序代码中使用哪种
ILogger
抽象--微软或塞利罗格。我认为更多的是选择低级别Serilog.Extensions.Logging包还是更高级别的Serilog.AspNetCore包(这取决于前者)。
Serilog.AspNetCore包引入了一些有用的特性,如 请求日志记录 和直接与通用主机集成。在ASP.NET核心应用程序中您可能想要的东西。Serilog.Extensions.Logging包更适合于不使用通用主机(例如控制台应用程序)的场景。
关于是更喜欢使用微软的
ILogger
抽象还是使用Serilog的:这取决于。在您期望跨不同项目(或公开)共享的库代码中,为了实现最大的兼容性,我可能会坚持使用Microsoft的抽象,而不是强迫不受欢迎的依赖消费者。类似地,如果您认为有可能有一天您想要交换日志框架,那么如果您坚持使用Microsoft,您可能会过得更轻松。
另一方面,您可能更喜欢Serilog API的人机工程学,而不是微软的API,例如,您可能喜欢静态
Log
和
LogContext
API的方便性,而不需要所有注入记录器的仪式。
IDiagnosticContext
抽象(以及上面提到的ASP.NET核心请求记录器)是一种非常强大的日志记录模式。这些都是与塞里罗格“全身心投入”的好理由。
https://stackoverflow.com/questions/70847039
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
越狱的蚂蚁 · 将一个字段拆分为多个字段 - Tableau 1 年前 |