logging - 解决 Microsoft.Extensions.Logging ILogger 而不是 ILogger使用 Autofac 和 SeriLog
问题描述
使用 Microsoft.Extensions.Logging 时,通常会ILoggerfactory
在记录器实现和ILogger<>
.
我正在寻找一种注入非泛型ILogger
并让 IoC 容器(在本例中为 Autofac)生成类型ILogger<>
的方法,该类被注入。
在这篇文章https://blog.rsuter.com/logging-with-ilogger-recommendations-and-best-practices/中说:
更喜欢注入
ILogger
接口,如果需要,也可以注入ILogger<T>
接口。理想情况下,您的类的构造函数会请求 ILogger,而 IoC 框架会创建请求类ILogger<T>
所在位置的实例。T
我同意它,我希望能够只注入一个 ILogger 并获得正确的上下文实例。
autofac serilog 集成(https://github.com/nblumhardt/autofac-serilog-integration)做了类似的事情,但对于 Serilog。
该库将 Autofac 配置为自动
ILogger
为注入 an 的每个类配置正确的上下文记录器。
那么有没有办法让它与Autofac
,SeriLog
和一起工作Microsoft.Extensions.Logging
?
我已经尝试了一点,没有很多努力。
Steven 提出了一些很酷的东西,我可以通过使用上面的 autofac serilog 集成并将 Serilog Logger 注入到我的自定义抽象中来工作,但是这样我将失去结构化日志记录等的能力。
如果有人可以提供一些指导,那就太好了。
解决方案
推荐阅读
- java - 如何在不重复字符的情况下找到最长的子字符串?
- c - 最佳实践 lkm 劫持输入,有合法的方法吗?
- python - Python浮点范围作为字典索引
- java - springboot Thymeleaf 添加不同的列表字段
- docker - 有没有办法创建 Docker 卷并用数据预填充它?
- python - 如何从 Pandas (Python) 中由排序时间序列索引的数据帧中的列中的所有值生成统计特征?
- java - Java:Android UI(Android Studio)和java后端(模型)的交互/连接(与JavaFX相比)
- auth0 - 根据用户的电子邮件地址自动选择 Auth0 DB Connection
- c - 为什么代码只打印指向字符串的指针数组中最后一个指针的值?
- swift - 如何在不使用 Swift 中的新变量的情况下进行向下转换?