2013-03-01 5 views
2

Новое в C# и .net, работающее в visual studio 2012. Я хочу иметь возможность отображать значения в окне вывода для целей отладки. Я очень хорошо знаком с окнами часов, но это не соответствует моим текущим потребностям.C# asp.net debug.writeline пишет где?

Мое последнее усилие Я взял точный образец с сайта msdn.

Debug.Listeners.Add(new TextWriterTraceListener(Console.Out)); 
    Debug.AutoFlush = true; 
    Debug.Indent(); 
    Debug.WriteLine("Entering Main"); 
    Console.WriteLine("Hello World."); 
    Debug.WriteLine("Exiting Main"); 
    Debug.Unindent(); 

Этот пример можно найти на сайте http://msdn.microsoft.com/en-us/library/system.diagnostics.debug%28v=vs.71%29.aspx

я добавил точку останова на следующей строке после кода выше. Когда я попал в точку останова, у меня нет ошибок, и мое окно вывода не имеет ожидаемого содержимого. У меня есть набор System.Diagnostics.

ответ

3

Как описано в MSDN, System.Diagnostics.Debug записывает свои сообщения во все подписанные TraceListeners (http://msdn.microsoft.com/en-us/library/system.diagnostics.tracelistener.aspx). Обратите внимание, что вы должны #define TRACE или добавить/d: TRACE при компиляции вашей программы. Вы можете настроить своих слушателей в файле конфигурации следующим образом.

<configuration> 
    <system.diagnostics> 
    <trace autoflush="false" indentsize="4"> 
     <listeners> 
     <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" /> 
     <remove name="Default" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
</configuration> 
+0

ПРИМЕЧАНИЕ. Отладка и трассировка не поступают в окно вывода, как ожидалось, но записывают в файл, заданный в конфигурации. В этом примере здесь указано имя файла TextWriterOutput.log. – Tom

Смежные вопросы