System.Diagnostics


.NET Framework Class Library
TextWriterTraceListener Class

Directs tracing or debugging output to a TextWriter or to a Stream, such as FileStream.

Namespace: System.Diagnostics
Assembly: System (in system.dll)

Syntax

Visual Basic (Declaration)
Public Class TextWriterTraceListener
    Inherits TraceListener
Visual Basic (Usage)
Dim instance As TextWriterTraceListener
C#
public class TextWriterTraceListener : TraceListener
C++
public ref class TextWriterTraceListener : public TraceListener
J#
public class TextWriterTraceListener extends TraceListener
JScript
public class TextWriterTraceListener extends TraceListener
Remarks

NoteNote

The HostProtectionAttribute attribute applied to this class has the following Resources property value: Synchronization. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes.

The TextWriterTraceListener class provides the Writer property to get or set the text writer that receives the tracing or debugging output.

This class also provides methods to Close the Writer so that it no longer receives tracing or debugging output, to Flush the output buffer for the Writer, and to Write a message to the Writer.

You must enable tracing or debugging to use a trace listener. The following syntax is compiler specific. If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • To enable debugging in C#, add the /d:DEBUG flag to the compiler command line when you compile your code, or you can add #define DEBUG to the top of your file. In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • To enable tracing in C#, add the /d:TRACE flag to the compiler command line when you compile your code, or add #define TRACE to the top of your file. In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

To add a trace listener, edit the configuration file that corresponds to the name of your application. Within this file, you can add a listener, set its type and set its parameter, remove a listener, or clear all the listeners previously set by the application. The configuration file should be formatted like the following example.

<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>
NoteNote

If an attempt is made to write to a file that is in use or unavailable, the file name is automatically prefixed by a GUID.

Example

The following example implements an instance of the TextWriterTraceListener class that uses a StreamWriter called myOutputWriter to write to a file named TestFile.txt. First the example creates a file for output. Then it creates the StreamWriter for the first text writer, assigns it the output file, and adds it to the Listeners. Then, the code outputs one line of text to the file. Finally, the example flushes the output buffer.

After running this sample, you can open the TestFile.txt file to see the output.

Visual Basic
Public Class Sample
    
    Public Shared Sub Main()
        ' Create a file for output named TestFile.txt.
        Dim myFile As Stream = File.Create("TestFile.txt")
        
        ' Create a new text writer using the output stream, and add it to
        ' the trace listeners. 
        Dim myTextListener As New TextWriterTraceListener(myFile)
        Trace.Listeners.Add(myTextListener)

        
        ' Write output to the file.
        Trace.Write("Test output ")
        
        ' Flush the output.
        Trace.Flush() 

        System.Environment.ExitCode = 0
    End Sub

End Class
C#
public class Sample
{

public static int Main(string[] args) {
    // Create a file for output named TestFile.txt.
    Stream myFile = File.Create("TestFile.txt");
 
    /* Create a new text writer using the output stream, and add it to
     * the trace listeners. */
    TextWriterTraceListener myTextListener = new 
       TextWriterTraceListener(myFile);
    Trace.Listeners.Add(myTextListener);
 
    // Write output to the file.
    Trace.Write("Test output ");
 

    // Flush the output.
    Trace.Flush(); 

    return 0;
 }

}
C++
int main()
{
   
   // Create a file for output named TestFile.txt.
   Stream^ myFile = File::Create( "TestFile.txt" );
   
   /* Create a new text writer using the output stream, and add it to
        * the trace listeners. */
   TextWriterTraceListener^ myTextListener = gcnew TextWriterTraceListener( myFile );
   Trace::Listeners->Add( myTextListener );
   
  
   // Write output to the file.
   Trace::Write( "Test output " );
   
  
   // Flush the output.
   Trace::Flush();
   return 0;
}
J#
public class Sample
{
    public static void main(String[] args)
    {
        // Create a file for output named TestFile.txt.
        Stream myFile = File.Create("TestFile.txt");

        /* Create a new text writer using the output stream, and add it to
         * the trace listeners.
         */
        TextWriterTraceListener myTextListener = 
            new TextWriterTraceListener(myFile);
        Trace.get_Listeners().Add(myTextListener);

        // Write output to the file.
        Trace.Write("Test output ");

        // Flush the output.
        Trace.Flush();
        return;
    } //main
} //Sample 
Inheritance Hierarchy

System.Object
   System.MarshalByRefObject
     System.Diagnostics.TraceListener
      System.Diagnostics.TextWriterTraceListener
         System.Diagnostics.ConsoleTraceListener
         System.Diagnostics.DelimitedListTraceListener
         System.Diagnostics.XmlWriterTraceListener
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Platforms

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

Version Information

.NET Framework

Supported in: 2.0, 1.1, 1.0
See Also

Tags :


Page view tracker