NLog и пользовательские исключения - PullRequest
1 голос
/ 05 апреля 2011

Я новичок в NLog и никогда раньше не использовал расширенную библиотеку журналов.Мой вопрос может показаться глупым, но я действительно хочу знать, как и как лучше регистрировать пользовательские исключения с помощью пользовательских свойств.Должен ли я создать LayoutRenderer для каждого типа исключения или есть ли лучший способ сделать это?Спасибо

1 Ответ

2 голосов
/ 05 апреля 2011

Мое первое предположение, что вы не хотите писать собственный LayoutRenderer для каждого типа исключения.Причина в том, что вы, вероятно, хотите определить единый формат ведения журнала для вашего файла журнала.Например:

${date} | ${logger} | ${level} | ${message} | ${exception}

Было бы очень сложно управлять форматированием, используя множество различных LayoutRenderer для исключений.Если у вас много настраиваемых LayoutRenderers, вы можете подумать о написании отдельного настраиваемого LayoutRenderer, который сможет понять все имеющиеся у вас исключения.Или вы можете создать универсальный LayoutRenderer, который может интерпретировать любое исключение с помощью отражения.

См. Этот вопрос и ответы здесь, на SO, для некоторых идей о том, как регистрировать информацию о пользовательских исключениях в NLog.

Одна из представленных идей состоит в том, чтобы написать собственный LayoutRenderer, который использует отражение, чтобы найти свойства и значения исключения и зарегистрировать их.

Другая идея, которая не включает в себя написание дополнительного кода, заключается впопробуйте Средство визуализации исключений NLog .Один из вариантов - использовать параметр ToString (я думаю, что вы задаете его следующим образом: ${exception:tostring}. Если ваши пользовательские исключения (и "нормальные" исключения также) предоставляют достаточно информации в их методе ToString, этого может быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...