2010-07-19 4 views
8

Я добавил следующий код в мой файл web.config:Как отправить вывод трассировки в файл в файловой системе?

<system.diagnostics> 
    <trace autoflush="false" indentsize="4" > 
     <listeners> 
     <add name="myListener" 
      type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="d:\debugging.txt" /> 
     <remove name="Default"></remove> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

И я написал эту строку для отправки данные трассировки:

System.Diagnostics.Trace.Write(sID + " tracing id"); 

Но я не вижу «отладку. txt ", созданный на моем диске d: и нет выхода трассировки.

Я что-то упустил?

+0

Для файлов вам необходимо иметь 'autoflush =" true "'. – leppie

+0

Да, после создания autoflush = "true" вывод трассировки идет в целевом файле, но из строки: HttpContext.Current.Trace.Write (sID + "идентификатор трассировки"); а не из System.Diagnostics.Trace. И если я удалю атрибут writeToDiagnosticsTrace = "true" из System.Web configSection, то трассировка HttpContext также не работает, что очевидно. – teenup

+0

ASP.NET отображает сообщения трассировки, когда трассировка включена для страницы. ('trace.axd TraceViewer'). Чтобы трассировать сообщения Trace на веб-страницу ASP.NET, вы должны добавить объект 'WebPageTraceListener'. Чтобы просмотреть сообщения трассировки ASP.NET и System.Diagnostics в контексте вне страницы ASP.NET, используйте объект TextWriterTraceListener для записи сообщений трассировки в файл. – Kiquenet

ответ

5

Необходимо проследить путь к каталогу, на который служба записи ASP.NET имеет право на запись.

Что мне нравится делать, так это просто оставить слушателя по умолчанию и запустить TechNet DebugView, который имеет возможность сохранения или регистрации в файл.

+0

Я настроил папку для полного управления учетной записью машины Asp.Net, теперь файл создан, но он пуст и не содержит никакого вывода трассировки. У меня есть Trace = «True» на моей странице, и я могу видеть вывод трассировки на моей странице в браузере. – teenup

+0

Да, после создания autoflush = "true" вывод трассировки поступает в целевой файл, но из строки: HttpContext.Current.Trace.Write (sID + "идентификатор трассировки"); а не из System.Diagnostics.Trace. И если я удалю атрибут writeToDiagnosticsTrace = "true" из System.Web configSection, то трассировка HttpContext также не работает, что очевидно. – teenup

+0

У вас есть символ 'TRACE', определенный в вашей сборке, правильно? –

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