Блок приложения для ведения журнала - приоритет, значения категории - PullRequest
2 голосов
/ 12 апреля 2011

Я ищу рекомендации по использованию блока приложения для ведения журналов Enterprise Library и значений Приоритет, Категория и Серьезность, которые следует использовать.

Когда дело касается серьезности, ответ довольно прост: используйте одно из System.Diagnostics.TraceEventType перечислений.

Но Priority - это int, а Category - это массив строк.Поэтому я не уверен, что является наилучшей практикой, когда дело доходит до этих двух значений ....

Вот две схемы, которые я придумал, когда дело доходит до категории:

  1. Используйте имя класса для категории
  2. Используйте предопределенную категорию для различных типов сообщений, которые вы, кроме вашего приложения (например: Исключение, Информация и т. Д ...).

Преимущество 1: Это позволяет вам точно контролировать, какие классы вы хотите регистрировать в любой заданной точке.(укажите имя класса и уровень серьезности, чтобы контролировать, что регистрируется и где оно регистрируется).

Недостаток 1: Это может быть громоздким, поскольку у вас может быть несколько сотен категорий, и естьнет простого способа настройки конфигурации для захвата всех исключений в приложении.

Преимущество 2: Точная противоположность 1, поэтому очень легко указать, где вы хотите получать все ваши сообщения об исключенияхидти и так же легко позволяет отключить запись всей ненужной информации.

Недостаток 2: Это не так настраивается, как (1).

Ищемдругие идеи, когда речь идет о приоритете и категории.

1 Ответ

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

Но Priority - это int, а Category - это массив строк.Поэтому я не уверен, что является наилучшей практикой, когда дело доходит до этих двух значений ....

В плане приоритета я бы рекомендовал не использовать приоритет, если у вас нет особых требований для ведения журнала на основеприоритет.Если вам явно не нужен приоритет, это вызывает больше головных болей, чем стоит.

Вот две схемы, которые я придумал, когда дело доходит до категории:

  1. Используйте имя класса для категории
  2. Используйте предопределенную категорию для различных типов сообщений, которые вы, кроме вашего приложения (например: Исключение, Информация и т. Д.).

По моему опыту вышеупомянутые два варианта являются общими. Но зачем выбирать? Поскольку (как вы упоминаете) у вас может быть более одной категории, нет причин выбирать одну из других.При желании вы можете иметь несколько категорий и активировать только те, которые вас интересуют.

Например, помимо добавления имени класса (MyCompany.BusinessLogic.Processor) в качестве категории, вы также можете добавитьимя пространства или имя сборки в качестве категории (MyCompany.BusinessLogic).

Другими категориями, которые вы могли бы рассмотреть, являются категории по функциональной области или прикладному уровню.например, «DataAccess» или «UI».

Я думаю, если вы используете оба подхода из вашего списка, которые должны охватывать большинство ситуаций.Включите «Исключение», и если вам нужно более детальное ведение журнала, вы можете включить информацию для определенных классов или включить информацию глобально.

...