次の方法で共有


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[]

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

戻り値

指定したイベントをトレースする場合は 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検査し、トレース イベントの種類レベルが 以上に設定されている場合は をErrortrueす必要があります。それ以外の場合は を返すfalse必要があります。

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

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

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

適用対象