В сообщении конкретно не говорится, чтобы вы использовали разные регистраторы в каждом производном классе, но вместо этого использовали разные регистраторы для типа класса в целом.Вы можете, но не обязательно использовать новый экземпляр средства ведения журнала в каждом производном классе.
Один из способов взглянуть на это состоит в том, что может быть непонятно, когда два отдельных средства ведения журнала создаются одновременно (посколькубазовая еще будет существовать), особенно если скрыть базовую, используя то же имя регистратора.Ваши методы базового класса (не переопределенные) будут по-прежнему ссылаться на базовый статический регистратор, а переопределенные будут использовать другой.
Кроме того, статья создает экземпляр регистратора следующим образом:
static ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType );
, в то время как можно использовать несколько более простой способ:
static readonly ILog Log = LogManager.GetLogger(typeof(YourClass));
Прежде всего, он помеченreadonly
, что означает, что вы не сможете случайно изменить поле после инициализации.И использование типа будет работать так же, как с отражением, но немного быстрее (решается во время компиляции).Visual Studio также обновит имя класса автоматически, если вы решите переименовать его (чего не будет, если вы использовали перегрузку строки).