首页 > 解决方案 > System.Diagnostic Tracing 不适用于通过 autofac.config 添加的模块

问题描述

我需要有关 Autofac.Configuration 扩展的帮助!

我们使用 Autofac 和 Autofac.Configuration 将所有依赖项添加到我们的程序中。此外,我们使用 system.diagnositcs Tracing 来记录 Methode-Calls 等(通常情况下)。

现在,我们最近才开始使用 Autofac.Configuration 扩展。在此之前,所有消息都按预期写入输出文件。但是,仅通过配置文件添加的每个类都不会被记录。(它们通常工作正常,只是日志记录不起作用!)

这是我们的配置文件的样子:

  "components": [
    {
      "type": "MyClass, MyAssembly",
      "services": [
        {
          "type": "MyInterface, MyInterfaceAssembly"
        }
      ],
      "instanceScope": "singleinstance"
    },...

这就是我们的 Tracer-Calls 的样子:

private static readonly TraceSource Tracer = new TraceSource("MyCustomName", SourceLevels.Error);

...

Tracer.TraceInformation($"SomeMessage {someInput}");

有谁知道我做错了什么?或者这是 Autofac.Configuration 扩展中的错误?

标签: configurationautofactracesystem.diagnostics

解决方案


Autofac.Configuration 对跟踪没有任何作用。如果您搜索源代码,则甚至没有任何关于跟踪的参考。

我的猜测是发生了其他事情。我会在你的鞋子里看到的东西:

  • 转换为配置时出错:我是否忘记注册一个曾经注册过的类?我是否注册了所有相同的参数以及曾经是代码的所有内容?有什么不同的或我可能错过的吗?
  • 不相关的更改:我在转换为使用配置时是否做了其他事情?是否进行了其他重构?我是否从主分支拉到我的任务分支并从其他人那里获得可能影响我的更改?

不幸的是,您没有包含一个最小的可重现示例,因此任何人都无法在此处真正帮助解决问题。但是,我可以 100% 保证跟踪不会由于 Autofac.Configuration 模块中的任何错误而失败。它会是别的东西——要么是您创建的 JSON 配置中的错误,要么是发生了其他一些不相关的更改。


推荐阅读