DefaultTraceListener DefaultTraceListener DefaultTraceListener DefaultTraceListener Class

定義

トレースの動作と既定の出力メソッドを提供します。Provides the default output methods and behavior for tracing.

public ref class DefaultTraceListener : System::Diagnostics::TraceListener
[System.Runtime.InteropServices.ComVisible(false)]
public class DefaultTraceListener : System.Diagnostics.TraceListener
type DefaultTraceListener = class
    inherit TraceListener
Public Class DefaultTraceListener
Inherits TraceListener
継承
属性

次のコード例では、確率と統計に使用される値である二項分係数を計算します。The following code example calculates binomial coefficients, which are values used in probability and statistics. この例ではDefaultTraceListener 、を使用して結果をトレースし、エラーをログに記録します。This example uses a DefaultTraceListener to trace results and log errors. 新しいDefaultTraceListenerを作成し、それをTrace.Listeners LogFileNameコレクションに追加し、プロパティをコマンドライン引数で指定されたログファイルに設定します。It creates a new DefaultTraceListener, adds it to the Trace.Listeners collection, and sets the LogFileName property to the log file specified in the command-line arguments.

入力パラメーターの処理中にエラーが検出された場合、 CalcBinomialまたは関数が例外をFailスローした場合、メソッドはログを記録し、エラーメッセージを表示します。If an error is detected while processing the input parameter, or if the CalcBinomial function throws an exception, the Fail method logs and displays an error message. AssertUiEnabledプロパティがfalseの場合は、エラーメッセージもコンソールに書き込まれます。If the AssertUiEnabled property is false, the error message is also written to the console. 結果が正常にWrite(String)計算されると、メソッドとWriteLine(String)メソッドによって結果がログファイルに書き込まれます。When the result is calculated successfully, the Write(String) and WriteLine(String) methods write the results to the log file.

、、およびDefaultTraceListenerメソッドを使用すると、トレース情報がにのみ書き込まれます。 WriteLine Write FailThe Fail, Write, and WriteLine methods cause trace information to be written only to the DefaultTraceListener. トレース情報Trace.Listenersをコレクション内のすべてのリスナーに書き込むにはFailWrite TraceクラスのWriteLine 、、およびの各メソッドを使用します。To write trace information to all listeners in the Trace.Listeners collection, use the Fail, Write, and WriteLine methods of the Trace class.

using System;
using System.Diagnostics;
using Microsoft.VisualBasic;

class Binomial
{

    // args(0) is the number of possibilities for binomial coefficients.
    // args(1) is the file specification for the trace log file.
    public static void Main(string[] args)
    {

        decimal possibilities;
        decimal iter;

        // Remove the original default trace listener.
        Trace.Listeners.RemoveAt(0);

        // Create and add a new default trace listener.
        DefaultTraceListener defaultListener;
        defaultListener = new DefaultTraceListener();
        Trace.Listeners.Add(defaultListener);

        // Assign the log file specification from the command line, if entered.
        if (args.Length>=2)
        {
            defaultListener.LogFileName = args[1];
        }

        // Validate the number of possibilities argument.
        if (args.Length>=1)

            // Verify that the argument is a number within the correct range.
        {
            try
            {
                const decimal MAX_POSSIBILITIES = 99;
                possibilities = Decimal.Parse(args[0]);
                if (possibilities<0||possibilities>MAX_POSSIBILITIES)
                {
                    throw new Exception(String.Format("The number of possibilities must " +
                        "be in the range 0..{0}.", MAX_POSSIBILITIES));
                }
            }
            catch(Exception ex)
            {
                string failMessage = String.Format("\"{0}\" " +
                    "is not a valid number of possibilities.", args[0]);
                defaultListener.Fail(failMessage, ex.Message);
                if (!defaultListener.AssertUiEnabled)
                {
                    Console.WriteLine(failMessage+ "\n" +ex.Message);
                }
                return;
            }
        }
        else
        {
            // Report that the required argument is not present.
            const string ENTER_PARAM = "Enter the number of " +
                      "possibilities as a command line argument.";
            defaultListener.Fail(ENTER_PARAM);
            if (!defaultListener.AssertUiEnabled)
            {
                Console.WriteLine(ENTER_PARAM);
            }
            return;
        }

        for(iter=0; iter<=possibilities; iter++)
        {
            decimal result;
            string binomial;

            // Compute the next binomial coefficient and handle all exceptions.
            try
            {
                result = CalcBinomial(possibilities, iter);
            }
            catch(Exception ex)
            {
                string failMessage = String.Format("An exception was raised when " +
                    "calculating Binomial( {0}, {1} ).", possibilities, iter);
                defaultListener.Fail(failMessage, ex.Message);
                if (!defaultListener.AssertUiEnabled)
                {
                    Console.WriteLine(failMessage+ "\n" +ex.Message);
                }
                return;
            }

            // Format the trace and console output.
            binomial = String.Format("Binomial( {0}, {1} ) = ", possibilities, iter);
            defaultListener.Write(binomial);
            defaultListener.WriteLine(result.ToString());
            Console.WriteLine("{0} {1}", binomial, result);
        }
    }

    public static decimal CalcBinomial(decimal possibilities, decimal outcomes)
    {

        // Calculate a binomial coefficient, and minimize the chance of overflow.
        decimal result = 1;
        decimal iter;
        for(iter=1; iter<=possibilities-outcomes; iter++)
        {
            result *= outcomes+iter;
            result /= iter;
        }
        return result;
    }
}
Imports System
Imports System.Diagnostics
Imports Microsoft.VisualBasic

Module Binomial

    ' args(0) is the number of possibilities for binomial coefficients.
    ' args(1) is the file specification for the trace log file.
    Sub Main(ByVal args() As String)

        Dim possibilities As Decimal
        Dim iter As Decimal

        ' Remove the original default trace listener.
        Trace.Listeners.RemoveAt(0)

        ' Create and add a new default trace listener.
        Dim defaultListener As DefaultTraceListener
        defaultListener = New DefaultTraceListener
        Trace.Listeners.Add(defaultListener)

        ' Assign the log file specification from the command line, if entered.
        If args.Length >= 2 Then
            defaultListener.LogFileName = args(1)
        End If

        ' Validate the number of possibilities argument.
        If args.Length >= 1 Then

            ' Verify that the argument is a number within the correct range.
            Try
                Const MAX_POSSIBILITIES As Decimal = 99
                possibilities = Decimal.Parse(args(0))
                If possibilities < 0 Or possibilities > MAX_POSSIBILITIES Then
                    Throw New Exception( _
                        String.Format("The number of possibilities must " & _
                            "be in the range 0..{0}.", MAX_POSSIBILITIES))
                End If
            Catch ex As Exception
                Dim failMessage As String = String.Format("""{0}"" " & _
                    "is not a valid number of possibilities.", args(0))
                defaultListener.Fail(failMessage, ex.Message)
                If Not defaultListener.AssertUiEnabled Then
                    Console.WriteLine(failMessage & vbCrLf & ex.Message)
                End If
                Return
            End Try
        Else
            ' Report that the required argument is not present.
            Const ENTER_PARAM As String = "Enter the number of " & _
                "possibilities as a command line argument."
            defaultListener.Fail(ENTER_PARAM)
            If Not defaultListener.AssertUiEnabled Then
                Console.WriteLine(ENTER_PARAM)
            End If
            Return
        End If

        For iter = 0 To possibilities
            Dim result As Decimal
            Dim binomial As String

            ' Compute the next binomial coefficient and handle all exceptions.
            Try
                result = CalcBinomial(possibilities, iter)
            Catch ex As Exception
                Dim failMessage As String = String.Format( _
                        "An exception was raised when " & _
                        "calculating Binomial( {0}, {1} ).", _
                        possibilities, iter)
                defaultListener.Fail(failmessage, ex.Message)
                If Not defaultListener.AssertUiEnabled Then
                    Console.WriteLine(failMessage & vbCrLf & ex.Message)
                End If
                Return
            End Try

            ' Format the trace and console output.
            binomial = String.Format("Binomial( {0}, {1} ) = ", _
                            possibilities, iter)
            defaultListener.Write(binomial)
            defaultListener.WriteLine(result.ToString)
            Console.WriteLine("{0} {1}", binomial, result)
        Next
    End Sub

    Function CalcBinomial(ByVal possibilities As Decimal, _
                        ByVal outcomes As Decimal) As Decimal

        ' Calculate a binomial coefficient, and minimize the chance of overflow.
        Dim result As Decimal = 1
        Dim iter As Decimal
        For iter = 1 To possibilities - outcomes
            result *= outcomes + iter
            result /= iter
        Next
        Return result
    End Function
End Module

注釈

このクラスのインスタンスは、コレクションDebug.ListenersおよびTrace.Listenersコレクションに自動的に追加されます。An instance of this class is automatically added to the Debug.Listeners and Trace.Listeners collections. 2つ目DefaultTraceListenerのを明示的に追加すると、デバッガーの出力ウィンドウに重複するメッセージが表示され、アサート用のメッセージボックスが重複します。Explicitly adding a second DefaultTraceListener causes duplicate messages in the debugger output window and duplicate message boxes for asserts.

既定では、 WriteメソッドWriteLineとメソッドは、メッセージを Win32 OutputDebugString関数およびDebugger.Logメソッドに出力します。By default, the Write and WriteLine methods emit the message to the Win32 OutputDebugString function and to the Debugger.Log method.

既定Failでは、メソッドは、アプリケーションがユーザーインターフェイスモードで実行されている場合にメッセージボックスを表示します。 WriteLineまた、を使用してメッセージを出力します。The Fail method, by default, displays a message box when the application is running in a user interface mode; it also emits the message using WriteLine.

注意

Assert DefaultTraceListenerおよびメソッドの呼び出しのメッセージボックスの表示は、の有無によって異なります。FailThe display of the message box for Assert and Fail method calls depends on the presence of the DefaultTraceListener. DefaultTraceListenerがコレクションListenersに含まれていない場合、メッセージボックスは表示されません。If the DefaultTraceListener is not in the Listeners collection, the message box is not displayed. DefaultTraceListenerClear <clear > 要素System.Diagnostics.Trace.Listeners.Clear() remove > 要素、またはプロパティ () でメソッドを呼び出すことによって削除できます。 < ListenersThe DefaultTraceListener can be removed by the <clear> element, by the <remove> element, or by calling the Clear method on the Listeners property (System.Diagnostics.Trace.Listeners.Clear()).

トレースリスナーを使用するには、トレースまたはデバッグを有効にする必要があります。You must enable tracing or debugging to use a trace listener. 次の構文はコンパイラ固有です。The following syntax is compiler specific. または Visual Basic 以外C#のコンパイラを使用する場合は、コンパイラのドキュメントを参照してください。If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • でC#デバッグを有効にするに/d:DEBUGは、コードをコンパイルするときにコンパイラのコマンドラインにフラグ#define DEBUGを追加するか、ファイルの先頭にを追加します。To enable debugging in C#, add the /d:DEBUG flag to the compiler command line when you compile your code, or add #define DEBUG to the top of your file. Visual Basic で、コンパイラの/d:DEBUG=Trueコマンドラインにフラグを追加します。In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • でC#トレースを有効にするに/d:TRACEは、コードをコンパイルするときにコンパイラのコマンドラインにフラグ#define TRACEを追加するか、ファイルの先頭にを追加します。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. Visual Basic で、コンパイラの/d:TRACE=Trueコマンドラインにフラグを追加します。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 parameters, remove a listener, or clear all the listeners previously set by the application. 構成ファイルは、次の例のように書式設定する必要があります。The configuration file should be formatted similar to the following example:

<configuration>  
<system.diagnostics>  
  <trace autoflush="false" indentsize="4">  
    <listeners>  
      <remove name="Default" />  
      <add name="myListener"  type="System.Diagnostics.TextWriterTraceListener"    initializeData="c:\myListener.log" />  
    </listeners>  
  </trace>  
</system.diagnostics>  
</configuration>  

コンストラクター

DefaultTraceListener() DefaultTraceListener() DefaultTraceListener() DefaultTraceListener()

"Default" を DefaultTraceListener プロパティ値として使用して、Name クラスの新しいインスタンスを初期化します。Initializes a new instance of the DefaultTraceListener class with "Default" as its Name property value.

プロパティ

AssertUiEnabled AssertUiEnabled AssertUiEnabled AssertUiEnabled

アプリケーションがユーザー インターフェイス モードで実行されているかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the application is running in user-interface mode.

Attributes Attributes Attributes Attributes

アプリケーション構成ファイルに定義されているカスタム トレース リスナー属性を取得します。Gets the custom trace listener attributes defined in the application configuration file.

(Inherited from TraceListener)
Filter Filter Filter Filter

トレース リスナーのトレース フィルターを取得または設定します。Gets or sets the trace filter for the trace listener.

(Inherited from TraceListener)
IndentLevel IndentLevel IndentLevel IndentLevel

インデント レベルを取得または設定します。Gets or sets the indent level.

(Inherited from TraceListener)
IndentSize IndentSize IndentSize IndentSize

1 つのインデントに含まれるスペースの数を取得または設定します。Gets or sets the number of spaces in an indent.

(Inherited from TraceListener)
IsThreadSafe IsThreadSafe IsThreadSafe IsThreadSafe

トレース リスナーがスレッド セーフかどうかを示す値を取得します。Gets a value indicating whether the trace listener is thread safe.

(Inherited from TraceListener)
LogFileName LogFileName LogFileName LogFileName

トレース メッセージまたはデバッグ メッセージを書き込むログ ファイルの名前を取得または設定します。Gets or sets the name of a log file to write trace or debug messages to.

Name Name Name Name

この TraceListener の名前を取得または設定します。Gets or sets a name for this TraceListener.

(Inherited from TraceListener)
NeedIndent NeedIndent NeedIndent NeedIndent

出力にインデントを設定するかどうかを示す値を取得または設定します。Gets or sets a value indicating whether to indent the output.

(Inherited from TraceListener)
TraceOutputOptions TraceOutputOptions TraceOutputOptions TraceOutputOptions

トレース出力オプションを取得または設定します。Gets or sets the trace output options.

(Inherited from TraceListener)

メソッド

Close() Close() Close() Close()

派生クラスでオーバーライドされた場合、出力ストリームを終了して、トレース出力またはデバッグ出力を受信しないようにします。When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output.

(Inherited from TraceListener)
CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Dispose() Dispose() Dispose() Dispose()

TraceListener によって使用されているすべてのリソースを解放します。Releases all resources used by the TraceListener.

(Inherited from TraceListener)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

TraceListener によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the TraceListener and optionally releases the managed resources.

(Inherited from TraceListener)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
Fail(String) Fail(String) Fail(String) Fail(String)

常に失敗するアサーションのメッセージとスタック トレースを出力または表示します。Emits or displays a message and a stack trace for an assertion that always fails.

Fail(String, String) Fail(String, String) Fail(String, String) Fail(String, String)

常に失敗するアサーションの詳細メッセージとスタック トレースを出力または表示します。Emits or displays detailed messages and a stack trace for an assertion that always fails.

Flush() Flush() Flush() Flush()

派生クラスによってオーバーライドされるときに、出力バッファーをフラッシュします。When overridden in a derived class, flushes the output buffer.

(Inherited from TraceListener)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes()

トレース リスナーによってサポートされるカスタム属性を取得します。Gets the custom attributes supported by the trace listener.

(Inherited from TraceListener)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object) TraceData(TraceEventCache, String, TraceEventType, Int32, Object) TraceData(TraceEventCache, String, TraceEventType, Int32, Object) TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

トレース情報、データ オブジェクト、およびイベント情報をリスナー固有の出力に書き込みます。Writes trace information, a data object and event information to the listener specific output.

(Inherited from TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

トレース情報、データ オブジェクト、およびイベント情報の配列をリスナー固有の出力に書き込みます。Writes trace information, an array of data objects and event information to the listener specific output.

(Inherited from TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32) TraceEvent(TraceEventCache, String, TraceEventType, Int32) TraceEvent(TraceEventCache, String, TraceEventType, Int32) TraceEvent(TraceEventCache, String, TraceEventType, Int32)

トレース情報およびイベント情報をリスナー固有の出力に書き込みます。Writes trace and event information to the listener specific output.

(Inherited from TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

トレース情報、メッセージ、およびイベント情報をリスナー固有の出力に書き込みます。Writes trace information, a message, and event information to the listener specific output.

(Inherited from TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

トレース情報、オブジェクトの書式付き配列、およびイベント情報をリスナー固有の出力に書き込みます。Writes trace information, a formatted array of objects and event information to the listener specific output.

(Inherited from TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid) TraceTransfer(TraceEventCache, String, Int32, String, Guid) TraceTransfer(TraceEventCache, String, Int32, String, Guid) TraceTransfer(TraceEventCache, String, Int32, String, Guid)

トレース情報、メッセージ、関連するアクティビティ ID、およびイベント情報をリスナー固有の出力に書き込みます。Writes trace information, a message, a related activity identity and event information to the listener specific output.

(Inherited from TraceListener)
Write(Object) Write(Object) Write(Object) Write(Object)

ToString() クラスの実装時に、作成したリスナーにオブジェクトの TraceListener メソッドの値を書き込みます。Writes the value of the object's ToString() method to the listener you create when you implement the TraceListener class.

(Inherited from TraceListener)
Write(Object, String) Write(Object, String) Write(Object, String) Write(Object, String)

ToString() クラスの実装時に、作成したリスナーにカテゴリ名とオブジェクトの TraceListener メソッドの値を書き込みます。Writes a category name and the value of the object's ToString() method to the listener you create when you implement the TraceListener class.

(Inherited from TraceListener)
Write(String) Write(String) Write(String) Write(String)

出力を OutputDebugString 関数と Log(Int32, String, String) メソッドに書き込みます。Writes the output to the OutputDebugString function and to the Log(Int32, String, String) method.

Write(String, String) Write(String, String) Write(String, String) Write(String, String)

TraceListener クラスの実装時に、作成したリスナーにカテゴリ名とメッセージを書き込みます。Writes a category name and a message to the listener you create when you implement the TraceListener class.

(Inherited from TraceListener)
WriteIndent() WriteIndent() WriteIndent() WriteIndent()

このクラスの実装時に作成したリスナーにインデントを書き込み、NeedIndent プロパティを false にリセットします。Writes the indent to the listener you create when you implement this class, and resets the NeedIndent property to false.

(Inherited from TraceListener)
WriteLine(Object) WriteLine(Object) WriteLine(Object) WriteLine(Object)

ToString() クラスの実装時に、作成したリスナーにオブジェクトの TraceListener メソッドの値と行終端記号を書き込みます。Writes the value of the object's ToString() method to the listener you create when you implement the TraceListener class, followed by a line terminator.

(Inherited from TraceListener)
WriteLine(Object, String) WriteLine(Object, String) WriteLine(Object, String) WriteLine(Object, String)

ToString() クラスの実装時に、作成したリスナーにカテゴリ名、オブジェクトの TraceListener メソッドの値、および行終端記号を書き込みます。Writes a category name and the value of the object's ToString() method to the listener you create when you implement the TraceListener class, followed by a line terminator.

(Inherited from TraceListener)
WriteLine(String) WriteLine(String) WriteLine(String) WriteLine(String)

出力を OutputDebugString 関数と Log(Int32, String, String) メソッドに書き込み、続けて復帰とライン フィード (\r\n) を書き込みます。Writes the output to the OutputDebugString function and to the Log(Int32, String, String) method, followed by a carriage return and line feed (\r\n).

WriteLine(String, String) WriteLine(String, String) WriteLine(String, String) WriteLine(String, String)

TraceListener クラスの実装時に、作成したリスナーにカテゴリ名、メッセージ、および行終端記号を書き込みます。Writes a category name and a message to the listener you create when you implement the TraceListener class, followed by a line terminator.

(Inherited from TraceListener)

適用対象

スレッド セーフ

このクラスはスレッドセーフです。This class is thread safe.

こちらもご覧ください