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