我们目前正在使用 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/