问题
Config file:
<system.diagnostics>
<trace>
<listeners>
<add name="Console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false"></add>
<add name="Text" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:\uat\logs\bifit.log" traceOutputOptions="DateTime"></add>
</listeners>
</trace>
</system.diagnostics>
The code:
static void Main(string[] args)
{
try
{
Trace.WriteLine("Running BiFit Test Server.");
}
}
I can see the text in cosole window. And the file is created, but it empty. I remember there is something like Autoflush property somewhere?
回答1:
You recall correctly - it is defined on the trace element:
<trace autoflush="true">
...
</trace>
autoflush - Optional attribute. Specifies whether the trace listeners automatically flush the output buffer after every write operation.
回答2:
I think it's:
<system.diagnostics>
<trace autoflush="true">
...
</trace>
</system.diagnostics>
回答3:
You could call Trace.Flush() once you are done with your Trace.Write type operations.
来源:https://stackoverflow.com/questions/4345952/textwritertracelistener-does-not-work