Ответ 1
Я написал короткую статью об использовании Trace Listener - может быть, это поможет, особенно для начинающих - http://www.daveoncsharp.com/2009/09/create-a-logger-using-the-trace-listener-in-csharp/ p >
Я хочу представить некоторую трассировку для приложения С#, которое я пишу. К сожалению, я никогда не могу вспомнить, как это работает, и хотелось бы, чтобы время от времени мы проверяли справочные качества. Он должен включать:
Знаете ли вы учебник uber, с которым мы должны ссылаться?
РЕДАКТИРОВАТЬ: Гленн Славен указал мне в правильном направлении. Добавьте это в свой App.config/Web.config внутри <configuration/>
:
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter"
initializeData="trace.log" />
</listeners>
</trace>
</system.diagnostics>
Это добавит TextWriterTraceListener
, который поймает все, что вы отправляете, с помощью Trace.WriteLine
и т.д.
EDIT: @DanEsparza указала, что вместо Trace.WriteLine
следует использовать Trace.TraceInformation
, Trace.TraceWarning
и Trace.TraceError
, поскольку они позволяют вам форматировать сообщения так же, как string.Format
.
Совет.. Если вы не добавляете слушателей, вы можете увидеть вывод трассировки с помощью программы SysInternals DebugView (Dbgview.exe
): http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
Я написал короткую статью об использовании Trace Listener - может быть, это поможет, особенно для начинающих - http://www.daveoncsharp.com/2009/09/create-a-logger-using-the-trace-listener-in-csharp/ p >
Я следил за 5 различными ответами, а также всеми сообщениями в блоге выше и все еще имел проблемы. Я пытался добавить слушателя к существующему коду, который трассировался с использованием метода TraceSource.TraceEvent(TraceEventType, Int32, String)
, где объект TraceSource
был инициализирован строкой, создающей его "named source". Для меня проблема заключалась не в создании правильной комбинации элементов источника и переключателя для целевого источника. Вот пример, который будет записываться в файл с именем tracelog.txt
. Для следующего кода:
TraceSource source = new TraceSource("sourceName");
source.TraceEvent(TraceEventType.Verbose, 1, "Trace message");
Мне удалось успешно выполнить регистрацию со следующей конфигурацией диагностики:
<system.diagnostics>
<sources>
<source name="sourceName" switchName="switchName">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="tracelog.txt" />
</listeners>
</source>
</sources>
<switches>
<add name="switchName" value="Verbose" />
</switches>
</system.diagnostics>
Не знаю, поможет ли эта ссылка?
http://www.codeguru.com/csharp/.net/net_debugging/tracing/article.php/c5919/
В DotNetCoders есть статья стартера: http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50, они говорят о том, как настроить коммутаторы в файле конфигурации и как для написания кода, но он довольно старый (2002). Еще одна статья о CodeProject: http://www.codeproject.com/KB/trace/debugtreatise.aspx, но она того же возраста. CodeGuru имеет другую статью о пользовательских TraceListeners: http://www.codeguru.com/columns/vb/article.php/c5611
Я не могу придумать никаких новых статей, надеюсь, что у кого-то еще будет что-то