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[]

Массив объектов данных трассировки.

Возвращаемое значение

Boolean

Значение 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, dataformatOrMessageи cache. Если значение параметра равно null, параметр не является частью события. Например, если args параметр имеет значение null, это означает, что событие не имеет аргументов. Если параметр data имеет значение null, то есть один или нет объектов данных. Если имеется один объект данных, он будет найден в параметре data1 . Причиной различия между одним объектом данных и массивом объектов данных является производительность. Нет никаких оснований для создания массива объектов, если трассируется только один объект, как обычно. data Если параметр не nullзадан, data1 параметр также не должен бытьnull.

Гарантируется, что source параметр не null является пустой строкой ("").

При необходимости реализации метода могут создаваться следующие исключения:

— Исключения, не связанные с реализацией метода. Например, а ThreadAbortException.

Применяется к