次の方法で共有


TextWriterTraceListener クラス

トレース出力またはデバッグ出力を TextWriter または Stream (Console.OutFileStream など) に転送します。

この型のすべてのメンバの一覧については、TextWriterTraceListener メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.Diagnostics.TraceListener
         System.Diagnostics.TextWriterTraceListener

Public Class TextWriterTraceListener
   Inherits TraceListener
[C#]
public class TextWriterTraceListener : TraceListener
[C++]
public __gc class TextWriterTraceListener : public TraceListener
[JScript]
public class TextWriterTraceListener extends TraceListener

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

TextWriterTraceListener クラスは、トレース出力またはデバッグ出力を受信するテキスト ライタを取得または設定するための Writer プロパティを提供します。

また、このクラスは、 WriterClose してトレース出力やデバッグ出力を受信しないようにするメソッド、 Writer 用の出力バッファを Flush するメソッド、および Writer にメッセージを Write するメソッドも提供します。

スイッチを使用するには、トレースまたはデバッグを有効にする必要があります。次の構文はコンパイラに固有です。C# または Visual Basic 以外のコンパイラを使用する場合は、使用するコンパイラのドキュメントを参照してください。

  • C# でデバッグを有効にするには、コードのコンパイル時に /d:DEBUG フラグをコンパイラのコマンド ラインに追加するか、 #define DEBUG をファイルの最上部に挿入します。Visual Basic では、コンパイラのコマンド ラインに /d:DEBUG=True フラグを追加します。
  • C# でトレースを有効にするには、コードのコンパイル時に /d:TRACE フラグをコンパイラのコマンド ラインに追加するか、 #define TRACE をファイルの最上部に挿入します。Visual Basic では、コンパイラのコマンド ラインに /d:TRACE=True フラグを追加します。

リスナのレベルを設定するには、アプリケーション名に対応する構成ファイルを編集します。このファイルでは、リスナの追加、その型とパラメータの設定、リスナの削除、アプリケーションで以前設定されたすべてのリスナのクリアを実行できます。構成ファイルの書式は次の例のとおりです。

このコード例を実行するには、アセンブリの完全限定名を指定する必要があります。アセンブリの完全限定名を取得する方法については、「 アセンブリ名 」を参照してください。

<configuration>
<system.diagnostics>
    <switches>
        <add name="MagicTraceSwitch" value="3" />
    </switches>
    <trace autoflush="false" indentsize="4">
        <listeners>
           <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\myListener.log" />
           <!-- You must supply a valid fully qualified assembly name here. --> 
           <remove type="Assembly text name, Version, Culture, PublicKeyToken"/> 
        </listeners>
    </trace>
</system.diagnostics>
</configuration>

使用例

[Visual Basic, C#, C++] TextWriterTraceListener クラスの 2 つのインスタンスを実装する例を次に示します。1 番目のインスタンス myTextListener は、 myOutputWriter という名前の StreamWriter を使用して、 TestFile.txt という名前のファイルに書き込みます。2 番目のインスタンス myWriter は、コンソール画面に出力します。

[Visual Basic, C#, C++] この例では、最初に出力用のファイルを作成します。次に、1 番目のテキスト ライタ用の StreamWriter を作成し、出力ファイルを割り当て、 Listeners に追加します。続いて、2 番目のテキスト ライタを作成し、同様に Listeners に追加します。次に、1 行のテキストをファイルとコンソール画面に出力し、2 行をコンソール画面に出力します。最後に、出力バッファをフラッシュし、バッファを終了します。

[Visual Basic, C#, C++] このサンプルを実行した後で、 TestFile.txt ファイルを開いて出力の内容を確認できます。

 
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)
        
        ' Create a text writer that writes to the console screen, and add
        ' it to the trace listeners 
        Dim myWriter As New TextWriterTraceListener(System.Console.Out)
        Trace.Listeners.Add(myWriter)
        
        ' Write output to the file and to the console screen.
        Trace.Write("Test output ")
        
        ' Write only to the console screen.
        myWriter.WriteLine("Write only to the console screen.")
        
        ' Flush and close the output.
        Trace.Flush() 
        myWriter.Flush()
        myWriter.Close()

        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);
 
    /* Create a text writer that writes to the console screen, and add
     * it to the trace listeners */
    TextWriterTraceListener myWriter = new 
       TextWriterTraceListener(System.Console.Out);
    Trace.Listeners.Add(myWriter);
 
    // Write output to the file and to the console screen.
    Trace.Write("Test output ");
 
    // Write only to the console screen.
    myWriter.WriteLine("Write only to the console screen.");
 
    // Flush and close the output.
    Trace.Flush(); 
    myWriter.Flush();
    myWriter.Close();
 
    return 0;
 }

}

[C++] 
int main() {
    // Create a file for output named TestFile.txt.
    Stream* myFile = File::Create(S"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);

    /* Create a text writer that writes to the console screen, and add
     * it to the trace listeners */
    TextWriterTraceListener* myWriter = new
       TextWriterTraceListener(System::Console::Out);
    Trace::Listeners->Add(myWriter);

    // Write output to the file and to the console screen.
    Trace::Write(S"Test output ");

    // Write only to the console screen.
    myWriter->WriteLine(S"Write only to the console screen.");

    // Flush and close the output.
    Trace::Flush();
    myWriter->Flush();
    myWriter->Close();

    return 0;
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Diagnostics

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System (System.dll 内)

参照

TextWriterTraceListener メンバ | System.Diagnostics 名前空間 | TraceListener | DefaultTraceListener | EventLogTraceListener | Stream | TextWriter | Debug | Trace