【问题标题】:System.Diagnostic Tracing not working with modules added through autofac.configSystem.Diagnostic Tracing 不适用于通过 autofac.config 添加的模块
【发布时间】:2020-01-17 10:10:21
【问题描述】:

我需要有关 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 扩展中的错误?

【问题讨论】:

    标签: configuration autofac trace system.diagnostics


    【解决方案1】:

    Autofac.Configuration 对跟踪没有任何作用。如果你 search through the source 那里甚至没有提及跟踪那里的任何地方。

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

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

    很遗憾,您是didn't include a minimal reproducible example,所以没有人可以真正帮助解决这里的问题。但是,我可以 100% 保证跟踪不会由于 Autofac.Configuration 模块中的任何错误而失败。可能是其他问题 - 您创建的 JSON 配置中的错误或发生了其他一些不相关的更改。

    【讨论】:

    • 感谢您的反馈!我也确实查看了源代码,也没有看到任何与跟踪相关的内容,因此感谢您确认。 :) 按照您的建议,我进行了更多测试,发现我们在“大项目”中所做的相同配置/设置突然在较小的测试版本中工作得很好。所以是的,我仍然不知道是什么导致了问题,但我想我越来越接近了。感谢您确认这不是 autfac.configuration 的错误!这是一个很大的解脱!
    • 如果您能接受我的回答,不胜感激。这就是您为人们在 StackOverflow 上的回答而支付的“报酬”——如果答案正确且有帮助,请接受,这样回答者就会得到信任。
    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 2014-10-28
    • 2017-10-18
    • 2020-06-26
    • 1970-01-01
    • 2021-02-07
    • 2018-12-20
    • 2019-12-28
    相关资源
    最近更新 更多