2009-02-02 2 views
2

Мое приложение использует объект Trace для регистрации информации. Информация записывается в файл с помощью TextWriterTraceListener и работает отлично. Однако я хотел бы добавить еще один TraceListerner, который будет записывать информацию в веб-службу. Другими словами, мне нужен HttpTraceListener. Более того, мне нужно что-то умный, я бы не хотел видеть HTTP-запрос для каждой записи в журнале.Как бы вы построили HttpTraceListener?

Как бы вы построили такую ​​вещь? Я знаю, что мне нужно наследовать TraceListener (документация несколько загадочная ...), но у кого-нибудь есть идея, если HttpTraceListener уже существует? Я не хочу изобретать велосипед ...

Спасибо!

ответ

1

Из-за ваших требований по ведению журнала переменных, то есть не выдавая запрос для каждой записи, вам, безусловно, нужно будет создать свой собственный слушатель.

Per MSDN документы на TraceListener (http://msdn.microsoft.com/en-us/library/system.diagnostics.tracelistener(VS.80).aspx)

«Наследовать от этого класса для реализации пользовательского приемника для отладки и трассировки классов. Как минимум, вы должны выполнить Write и WriteLine методы. Кроме того, вы можете используйте методы Fail, Close и Flush. "

Я хотел бы начать с:

  1. Наследовать от TraceListener.
  2. Внедрите методы Write/WriteLine
  3. Добавьте логику в Write, чтобы отправить запрос в веб-службу. WriteLine просто добавляет терминатор линии, если вы используете реализацию базового класса.
  4. Отменить Fail/Close/Flush при необходимости для вашего приложения.

Эти 5 методов предоставят вам весь доступ, необходимый для реализации вашего слушателя.

Смежные вопросы