TraceFilter.ShouldTrace 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在派生的类中进行重写时,确定跟踪侦听器是否应跟踪事件。
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 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
:、、data
data1
、 formatOrMessage
和 cache
。 args
如果参数值为 null
,则参数不是 事件的一部分。 例如,如果 args
参数为 null
,则表示事件没有任何参数。 data
如果 参数为 null
,则存在一个或没有数据对象。 如果有一个数据对象,则会在 参数中找到 data1
它。 区分单个数据对象和数据对象数组的原因是为了性能。 如果只跟踪一个对象,则没有理由创建对象数组,就像通常的情况一样。 data
如果参数不是 null
,则data1
参数也不得为 null
。
可以保证 source
参数不是 null
,也不是空字符串 (“”) 。
方法的实现可以选择引发以下异常:
如果
source
为null
,则返回 ArgumentNullException。ArgumentException 如果
eventType
不是值之一,则 TraceEventType 为 。与 方法的实现无关的异常。 例如,。ThreadAbortException