TraceFilter.ShouldTrace(TraceEventCache, String, TraceEventType, Int32, String, Object[], Object, Object[]) Methode

Definition

Bestimmt beim Überschreiben in einer abgeleiteten Klasse, ob der Ablaufverfolgungslistener eine Ablaufverfolgung für das Ereignis durchführen soll.When overridden in a derived class, determines whether the trace listener should trace the event.

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

Parameter

cache
TraceEventCache

Der TraceEventCache, der Informationen für das Ablaufverfolgungsereignis enthält.The TraceEventCache that contains information for the trace event.

source
String

Der Name der Quelle.The name of the source.

eventType
TraceEventType

Einer der TraceEventType-Werte, der den Typ des Ereignisses angibt, das die Ablaufverfolgung verursacht hat.One of the TraceEventType values specifying the type of event that has caused the trace.

id
Int32

Eine Ablaufverfolgungs-Bezeichnernummer.A trace identifier number.

formatOrMessage
String

Entweder das Format, das für das Schreiben eines Arrays von Argumenten verwendet werden soll, die vom args-Parameter angegeben werden, oder eine zu schreibende Meldung.Either the format to use for writing an array of arguments specified by the args parameter, or a message to write.

args
Object[]

Ein Array von Argumentobjekten.An array of argument objects.

data1
Object

Ein Ablaufverfolgungs-Datenobjekt.A trace data object.

data
Object[]

Ein Array von Ablaufverfolgungs-Datenobjekten.An array of trace data objects.

Gibt zurück

Boolean

true, um das angegebene Ereignis zu verfolgen, andernfalls false.true to trace the specified event; otherwise, false.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie die- ShouldTrace Methode überschrieben wird, um anzugeben, dass die Ablauf Verfolgung auftreten soll, wenn der Ablauf Verfolgungs Ereignistyp des Ereignisses gleich ist TraceEventType.ErrorThe following code example shows how to override the ShouldTrace method to indicate tracing should occur when the trace event type of the event is equal to 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

Hinweise für Ausführende

Implementierungen dieser Methode sollten zurückgeben, true Wenn das Ereignis, das von den bestandenen Parametern angegeben wird, verfolgt werden soll.Implementations of this method should return true if the event specified by the passed parameters should be traced. Andernfalls sollte die-Methode zurückgeben false .Otherwise the method should return false. Ein Filter, der nur das passieren von Fehlerereignissen an den Listener zulässt, sollte beispielsweise den eventType -Parameter überprüfen und zurückgeben, true Wenn die Typ Ebene des Ablauf Verfolgungs Ereignisses auf oder höher festgelegt ist Error . andernfalls sollte Sie zurückgeben false .For example, a filter that allows only error events to pass through to the listener should inspect the eventType parameter and return true if the trace event type level is set to Error or greater; otherwise, it should return false.

Implementierungen der-Methode sollten für die Behandlung von null in den folgenden Parametern vorbereitet werden: args , data1 , data , formatOrMessage und cache .Implementations of the method should be prepared to handle null in the following parameters: args, data1, data, formatOrMessage, and cache. Wenn der-Parameterwert ist null , ist der-Parameter nicht Teil des-Ereignisses.If the parameter value is null, the parameter is not part of the event. Wenn der-Parameter beispielsweise args ist null , bedeutet dies, dass das Ereignis keine Argumente hat.For example, if the args parameter is null, it means that the event does not have any arguments. Wenn der- data Parameter ist null , gibt es entweder ein oder kein Datenobjekt.If the data parameter is null, then there are either one or no data objects. Wenn ein Datenobjekt vorhanden ist, wird es im-Parameter gefunden data1 .If there is one data object, it will be found in the data1 parameter. Der Grund für den Unterschied zwischen einem einzelnen Datenobjekt und einem Array von Datenobjekten ist die Leistung.The reason for the distinction between a single data object and an array of data objects is for performance. Es gibt keinen Grund, ein Objekt Array zu erstellen, wenn nur ein Objekt nachverfolgt wird, wie es in der Regel der Fall ist.There is no reason to create an object array if only one object is traced, as is normally the case. Wenn der- data Parameter nicht ist null , data1 muss der-Parameter auch nicht sein null .If the data parameter is not null, the data1 parameter must also not be null.

Es ist sichergestellt, dass der source -Parameter nicht null und keine leere Zeichenfolge ("") ist.It is guaranteed that the source parameter is not null and not an empty string ("").

Implementierungen der-Methode können optional die folgenden Ausnahmen auslösen:Implementations of the method can optionally throw the following exceptions:

  • ArgumentNullException if source is null.

  • ArgumentException Wenn eventType keiner der-Werte ist TraceEventType .
  • ArgumentException if eventType is not one of the TraceEventType values.
  • -Ausnahmen, die nicht mit der Implementierung der Methode in Zusammenhang stehen.- Exceptions unrelated to the implementation of the method. Beispielsweise ein ThreadAbortException .For example, a ThreadAbortException.

    Gilt für: