log4 net несколько регистраторов против одного регистратора в приложении?

У нас есть приложение на C # с несколькими разными модулями. Мы используем log4net для регистрации. Что нужно сделать для регистрации сообщений:

  1. Создайте проект централизованного ведения журнала: классы приложений для использования статических методов dll проекта централизованного ведения журнала для регистрации сообщений. Таким образом, ни один класс в приложении не создает регистратор, все требования к ведению журнала должны выполняться этой dll ИЛИ
  2. Все типы в самом приложении создают свои собственные регистраторы: легко проверить, какой тип генерирует какое сообщение, легко управлять различными типами требований к ведению журнала, iewe может регулировать ведение журнала каждого типа независимо, например, один класс регистрирует ВСЕ журналы, а другой только журнал ОШИБКА .

Какая практика предпочтительнее?

Подход2 имеет свои преимущества, но подход1 выглядит чистым, поскольку каждый класс больше не отвечает за вызов «GetLogger (typeOf (className))».

Какой рекомендуемый способ?


person Sahil Sharma    schedule 21.05.2017    source источник
comment
На самом деле зависит от того, чем вы хотите заниматься. Я считаю, что 1 и 2 противоречат друг другу. Конечно, наличие централизованного проекта сохраняет все в чистоте, но вынуждает вести все журналы в одной конфигурации.   -  person FortyTwo    schedule 22.05.2017


Ответы (1)


Это действительно зависит от сценария использования, при создании библиотеки может иметь смысл использовать метод 1. Однако при создании сложной программы метод 2 поможет вам управлять разными регистраторами независимо. Метод 2 также дает возможность регистрировать все в вашем проекте, как это делает метод 1. Однако метод 1 не поддерживает различие в регистраторе. Так что в большинстве случаев способ 2 кажется лучшим выбором.

person Peter    schedule 03.07.2017