【发布时间】: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