在VC++中跟踪输出用函数 OutputDebugString ,很简单。
参见
WINBASEAPI
VOID
WINAPI
OutputDebugStringA(
LPCSTR lpOutputString
);
WINBASEAPI
VOID
WINAPI
OutputDebugStringW(
LPCWSTR lpOutputString
);
而在VS C# 中事情变的复杂起来,实现相同的跟踪输出功能,实现如下(两步):
1、修改config配置文件:
<configuration>
<system.diagnostics>
<sources>
<source name="whj.test" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="traceListener"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="traceListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="{8ADA630A-F1CD-48BD-89F7-02CE2E7B9625}"/>
</sharedListeners>
<trace autoflush="true"/>
<assert assertuienabled="false"/>
<switches>
<add name="SourceSwitch" value="Verbose, ActivityTracing"/>
</switches>
</system.diagnostics>
</configuration>
2、代码调用实例:
System.Diagnostics.TraceSource ts = new System.Diagnostics.TraceSource("whj.test");
ts.TraceEvent(System.Diagnostics.TraceEventType.Start, event_id, "这是跟踪日志");
主要用到了 TraceSource 类提供的一组API,TraceEvent ,TraceData等 。