TextWriterTraceListener does not work
Asked Answered
C

3

4

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?

Crural answered 3/12, 2010 at 13:25 Comment(0)
G
10

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.

Gaut answered 3/12, 2010 at 13:27 Comment(3)
Thanks, but then this attribute applies to all listeners. But the console listeners works unlike file one.Crural
@Captain Comic - Can't change how it works, I'm afraid. And does it matter if the console output buffer also gets flushed?Gaut
@Captain Comic - Glad to have helped :)Gaut
D
3

I think it's:

<system.diagnostics>
    <trace autoflush="true">
      ...
    </trace>
</system.diagnostics>
Discontinue answered 3/12, 2010 at 13:29 Comment(0)
T
2

You could call Trace.Flush() once you are done with your Trace.Write type operations.

Tadtada answered 3/12, 2010 at 13:35 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.