Log4net: контекст журнала только для исключения - PullRequest
2 голосов
/ 18 июня 2009

Я ищу способ сбора данных, которые будут использоваться только для отладки. Т.е. данные должны регистрироваться только в том случае, если я регистрирую исключение. Когда я получаю аргумент исключения с ILog.Error, Fatal или Debug, я хочу записать дополнительную информацию. При регистрации других данных с исключением дополнительная информация не должна регистрироваться.

Я планирую использовать GlobalContext или ThreadContext для построения набора данных.

Моя идея состояла в том, чтобы подключиться к Log4Net и присоединиться к событию, которое я себе представляю, чтобы изменить шаблон сообщения для включения контекстов, но я не могу найти событие, которое могло бы мне помочь. Возможно, есть более простой способ?

Что вы думаете об общем дизайне этого? Я на правильном пути или я что-то упустил?

Если этот способ хорош, как я могу его реализовать?

1 Ответ

1 голос
/ 19 июня 2009

Заниматься и менять схему не совсем правильно. Я бы посоветовал посмотреть на фильтр. Таким образом, вы должны настроить приложение «ForMessagesWithExceptionsOnly», которое использует фильтр MessagesWithExceptionOnly. Этот appender, конечно, будет обрабатывать только те сообщения, которые содержат исключение.

Чтобы реализовать свой фильтр MessagesWithExceptionOnly, взгляните на FilterSkeleton .

...