c# - DryIoc 与 Serilog - 设置日志记录上下文

标签 c# serilog dryioc

我们目前正在使用 Autofac,并利用 AutofacSerilogIntegration 在 ILogger 注入(inject)混凝土时自动设置日志记录上下文。集成使用记录器注入(inject)的类型设置日志记录上下文。这在 Autofac 中并不是不合理的困难,因为有一个“准备”事件可用于任何分辨率...因此可以拦截 ILogger 的分辨率,并且可以在此时增强 ILogger,并且 Autofac 允许包含类型可以通过这个拦截器来确定。这是代码: https://github.com/nblumhardt/autofac-serilog-integration/blob/master/src/AutofacSerilogIntegration/ContextualLoggingModule.cs

我已经看到了 DryIoc 中拦截的可用性,但没有像 Autofac 方法那么简单。在 DryIoc 中,看起来必须为每个注入(inject)要拦截的类型的具体对象注册拦截器。 https://bitbucket.org/dadhi/dryioc/wiki/Decorators#markdown-header-decorator-as-interceptor-with-castle-dynamicproxy

有人对在 DryIoc 中解决此问题的最佳方法有建议吗?这是否可以以一种相对通用且高性能的方式实现?查看 DryIoc 文档后,我没有看到一个简单的方法,因为我没有看到可以在某种通用拦截器中确定要注入(inject)的类(并且可以全局应用)的地方。我显然不想检查记录器中的调用堆栈,因为众所周知这非常慢。

谢谢

最佳答案

如果 Serilog 需要类似于 log4net 的有关记录类型的信息,那么这里是 docs with example .

关于c# - DryIoc 与 Serilog - 设置日志记录上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36984231/

相关文章:

c# - 处理 DbContext.Entry 时尝试基于 .NET EF Core 对通用存储库进行单元测试失败

c# - 将 HostBuilder.ConfigureServices 与 DryIoc 容器一起使用?

asp.net-web-api - 随着 SerilogWeb.Owin 停止,是否有 "official"集成?

logging - 来自 appsettings.json 中 Filters.Expressions 的 Serilog 和过滤器

c# - 使用 SeriLog 写入 Azure documentDb

c# - 如何使用 DryIOC 解决使用父层级接口(interface)

c# - DryIoc 范围和重用

c# - 内容对话框不显示 WINUI3

c# - 系统中存在的 dot Net Web 浏览器对象和 Internet Explorer 之间有什么关系?

c# - 如何通过 Visual Studio 创建和运行 NUnit/WebDriver 测试套件?