Добавьте свой собственный источник в файл конфигурации:
<source name="MyNameSpace.MySource" switchValue="Verbose,ActivityTracing"
propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
Это не является строго необходимым, но если вы используете SvcTraceViewer, будет полезно иметь возможность отделить трассировки WCF от ваших собственных трасс.Далее в любом классе, для которого вы хотите выполнить трассировку, создайте экземпляр TraceSource:
class SomeClass{
TraceSource _traceSource = new TraceSource("MyNamespace.MySource");
void SomeMethod(){
// Anywhere you want to trace you can call the TraceInformation(String) method:
_traceSource.TraceInformation("My trace message");
}
}
Вы можете вызывать Flush каждый раз, когда вы отслеживаете, но я бы не рекомендовал это делать.Классы оптимизированы таким образом, чтобы как можно меньше нарушать ваш поток кода, а это означает, что трасса может не сразу появиться в файле, так как фактическая запись в файл происходит в другом потоке.Однако вы можете вызвать Flush во время закрытия приложения.