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指定导致跟踪的事件类型的值之一。

id
Int32

跟踪标识符号。

formatOrMessage
String

用于编写参数指定的 args 参数数组或要写入的消息的格式。

args
Object[]

参数对象的数组。

data1
Object

跟踪数据对象。

data
Object[]

跟踪数据对象的数组。

返回

true 跟踪指定事件;否则,为 false.

示例

下面的代码示例演示如何重写 ShouldTrace 方法以指示当事件的跟踪事件类型等于 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参数,并在跟踪事件类型级别设置为true或更高时返回Error;否则,它应返回false

方法的实现应准备好在以下参数中处理null:、、argsdata1dataformatOrMessagecache 如果参数值为 null,则参数不是事件的一部分。 例如,如果参数 argsnull,则表示该事件没有任何参数。 data如果参数为null,则存在一个或没有数据对象。 如果有一个数据对象,则会在参数中找到 data1 该对象。 单个数据对象与数据对象数组之间的区别的原因是性能。 如果只跟踪一个对象,则没有理由创建对象数组,就像通常的情况一样。 data如果参数不是null,则data1参数也不得null

可以保证 source 参数不是 null ,而不是空字符串(“)。

方法的实现可以选择性地引发以下异常:

适用于