Вы абсолютно уверены, что все еще используете Trace? Если нет, я бы использовал более полнофункциональную систему регистрации, такую как Log4Net .
Однако, если вы действительно хотите использовать Trace
, вы можете перенастроить TraceListener
s, используемые с файлом app.config
. Документы TraceListener
MSDN дают пример, подобный следующему:
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="fileLogger"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="LogFile.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
TextWriterTraceListener
будет выводить журналы в указанный файл. (Есть и другие доступные варианты.)
Кроме того, вы можете сделать это программно:
Trace.Listeners.Add(new TextWriterTraceListener("foo.log"));
Обратите внимание, что вам может потребоваться явно очистить трассировки перед выходом из приложения, либо с помощью:
Trace.Flush();
или более сложный:
foreach (TraceListener listener in Trace.Listeners)
{
listener.Flush();
}
(я упоминаю об этом только потому, что мне пришлось это проверять!)
РЕДАКТИРОВАТЬ: Как отмечено в комментариях, если вы рады, что слушатель сбрасывается после каждой записи (что позволяет избежать сброса в конце, но может повредить производительности), вы можете установить Trace.AutoFlush
в true (в том числе в XML - см. Атрибут autoflush
).