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 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
параметр и возвращать true
значение, если уровень типа события трассировки имеет Error значение или выше; в противном случае он должен возвращать false
значение .
Реализации метода должны быть подготовлены для обработки null
в следующих параметрах: args
, data1
, data
, formatOrMessage
и cache
. Если параметр имеет null
значение , параметр не является частью события . Например, если args
параметр имеет значение null
, это означает, что событие не имеет аргументов. data
Если параметр имеет значение , то имеется null
один объект данных или нет. Если имеется один объект данных, он будет найден в параметре data1
. Различие между одним объектом данных и массивом объектов данных связано с производительностью. Нет смысла создавать массив объектов, если трассируется только один объект, как это обычно бывает. data
Если параметр не null
равен , параметр data1
также не должен иметь значение null
.
Гарантируется, что source
параметр не null
является пустой строкой ("").
Реализации метода при необходимости могут вызывать следующие исключения:
Значение ArgumentNullException, если свойство
source
имеет значениеnull
.ArgumentException , если
eventType
не является одним из значений TraceEventType .Исключения, не связанные с реализацией метода . Например, .ThreadAbortException