У меня есть объект TraceSource, который я использую для регистрации инициализации приложения VB.Net. К нему прикреплено несколько TraceListener:
Для первых двух я хочу, чтобы вывод записи был «сырым», то есть без стандартного заголовка:
SourceName TraceEventType: Id:
Я реализовал оболочку, которая делает это, когда TraceEventType имеет значение Verbose:
If _buffer.EventType = TraceEventType.Verbose Then
For Each listener As TraceListener In _traceSource.Listeners
listener.Write(_buffer.Text)
Next
Else
_traceSource.TraceEvent(_buffer.EventType, id, _buffer.Text)
End If
Я мог бы сделать это для всей трассировки, но тогда все записи в EventLog будут перечислены с Уровень = Информация. Итак, я хочу иметь возможность указать серьезность сообщения трассировки, но я не могу найти в TraceSource или TraceListeners какой-либо метод, который позволяет мне это сделать. Насколько я могу судить, TraceListener имеет следующие варианты записи в него: Этот метод не предназначен для непосредственного вызова кодом приложения, а предназначен для записи данных трассировки в выходные данные членами классов Debug, Trace и TraceSource.
.. так что я не уверен, что это хорошо?
Edit:
Я только что понял, что если я сделаю что-то вроде моего последнего примера здесь, мне вообще не понадобится TraceSource, так как он все равно обходится. Но это также означает, что я должен реализовать свои собственные механизмы фильтрации и переключения (но, возможно, это приемлемая цена, чтобы заставить его работать так, как я хочу).