TraceFilter.ShouldTrace メソッド

定義

派生クラスでのオーバーライドの際に、トレース リスナーでイベントをトレースするかどうかを決定します。

public:
 abstract bool ShouldTrace(System::Diagnostics::TraceEventCache ^ cache, System::String ^ source, System::Diagnostics::TraceEventType eventType, int id, System::String ^ formatOrMessage, cli::array <System::Object ^> ^ args, System::Object ^ data1, cli::array <System::Object ^> ^ data);
public abstract bool ShouldTrace (System.Diagnostics.TraceEventCache? cache, string source, System.Diagnostics.TraceEventType eventType, int id, string? formatOrMessage, object?[]? args, object? data1, object?[]? data);
public abstract bool ShouldTrace (System.Diagnostics.TraceEventCache cache, string source, System.Diagnostics.TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data);
abstract member ShouldTrace : System.Diagnostics.TraceEventCache * string * System.Diagnostics.TraceEventType * int * string * obj[] * obj * obj[] -> bool
Public MustOverride Function ShouldTrace (cache As TraceEventCache, source As String, eventType As TraceEventType, id As Integer, formatOrMessage As String, args As Object(), data1 As Object, data As Object()) As Boolean

パラメーター

cache
TraceEventCache

トレース イベントの情報を含む TraceEventCache

source
String

ソースの名前。

eventType
TraceEventType

トレースを発生させたイベントのタイプを指定する TraceEventType 値の 1 つ。

id
Int32

トレース識別子番号。

formatOrMessage
String

args パラメーターによって指定された引数の配列を書き込むために使用する書式、または書き込むメッセージ。

args
Object[]

引数オブジェクトの配列。

data1
Object

トレース データ オブジェクト。

data
Object[]

トレース データ オブジェクトの配列。

戻り値

Boolean

指定したイベントをトレースする場合は true。それ以外の場合は false

次のコード例は、イベントのトレース イベントの ShouldTrace 種類が等しい場合にトレースが発生する必要があることを示すためにメソッドをオーバーライドする方法を TraceEventType.Error示しています。

public ref class ErrorFilter : TraceFilter
{
public:
    virtual bool ShouldTrace(TraceEventCache^ cache, String^ source,
        TraceEventType eventType, int id, String^ formatOrMessage,
        array<Object^>^ args, Object^ data, array<Object^>^ dataArray) override
    {
        return eventType == TraceEventType::Error;
    }
};
public class ErrorFilter : TraceFilter
{
    override public bool ShouldTrace(TraceEventCache cache, string source,
        TraceEventType eventType, int id, string formatOrMessage,
        object[] args, object data, object[] dataArray)
    {
        return eventType == TraceEventType.Error;
    }
}
Public Class ErrorFilter
    Inherits TraceFilter

    Public Overrides Function ShouldTrace ( cache As TraceEventCache, _
                source As String, eventType As TraceEventType, _
                id As Integer, formatOrMessage As String, _
                args As Object(), data As Object, _
                dataArray As Object() ) As Boolean
        If eventType = TraceEventType.Error Then
            Return True
        Else
            Return False
        End If
    End Function
End Class

注意 (実装者)

渡されたパラメーターで指定されたイベントをトレースする必要がある場合、このメソッドの実装は返 true す必要があります。 それ以外の場合、メソッドは .false たとえば、エラー イベントのみがリスナーに渡されるようにするフィルターは、パラメーターをeventType検査し、トレース イベントの種類レベルがそれ以上に設定Errorされているかどうかを返すtrue必要があります。それ以外の場合は、返すfalse必要があります。

メソッドの実装は、次のパラメーターで処理nullするように準備する必要があります。 data1argsdataformatOrMessagecache パラメーター値が指定されている null場合、パラメーターはイベントの一部ではありません。 たとえば、パラメーターが指定されている args 場合は null、イベントに引数がないことを意味します。 パラメーターが指定されている data 場合は null、データ オブジェクトが 1 つまたはまったく存在しません。 データ オブジェクトが 1 つ存在する場合は、パラメーターで data1 見つかります。 単一のデータ オブジェクトとデータ オブジェクトの配列を区別する理由は、パフォーマンスのためです。 通常のように、1 つのオブジェクトのみがトレースされる場合、オブジェクト配列を作成する理由はありません。 パラメーターが data 指定されていない null場合は、パラメーターを data1 指定することはできません null

パラメーターが空の source 文字列 ("") ではないこと null が保証されます。

メソッドの実装では、必要に応じて次の例外をスローできます。

適用対象