【问题标题】:Traces into DLL跟踪到 DLL
【发布时间】:2018-09-14 12:15:21
【问题描述】:

我的项目中有一个引用的 dll,使用 TraceSource 进行跟踪,但它不工作。我在dll项目中的代码是这样的:

private static readonly TraceSource ts = new TraceSource("DataSource");
...
ts.TraceInformation(string.Format("Info: {0}", mess));

在应用程序项目中(我在其中导入 DLL)App.config:

<system.diagnostics>
    <trace autoflush="true" indentsize="4">
      <listeners>
        <add name="MyListener" />
        <remove name="Default" />
      </listeners>
    </trace>

    <sources>
      <source name="DataSource" switchValue="All">
        <listeners>
          <remove name="Default"/>
          <add name="MyListener"/>
        </listeners>
      </source>
    </sources>

    <sharedListeners>
      <add name="MyListener"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="c:\\temp\DefaultWriterOutput.log" />

    </sharedListeners>
  </system.diagnostics>

当我使用带有跟踪的引用项目时,一切正常,但是当我导入 dll 时,跟踪不起作用。是不是配置有问题?

【问题讨论】:

  • "import the dll" 你的意思是包含在另一个项目中作为参考吗?无论哪种方式,都必须在调用代码中设置 TRACE 标志。是这样吗?您是否将“不工作”定义为 a) 没有发生跟踪输出或 b) 异常?
  • 是的,我的应用程序项目中的 DLL 引用。在项目属性->构建中,定义跟踪常量被选中,但没有任何变化
  • 没有跟踪输出发生。但是如果我引用该项目,则会显示跟踪输出

标签: c# asp.net dll trace system.diagnostics


【解决方案1】:

我忘记了我的 DLL 项目正在使用 Nuget 配置(不是发布)。 :( 我将项目属性中的 TRACE 常量设置为 Nuget 配置,它可以工作。

【讨论】:

    猜你喜欢
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多