Предложите дизайн: почти каждый объект в приложении имеет логгер

Я пишу заявку. Я использую NLog для регистрации. В этом приложении почти каждый объект может писать в журнал. Я определяю защищенный член для этого:

protected Logger logger;

protected virtual Logger Logger
{
     get { return logger ?? (logger = LogManager.GetLogger(this.GetType().ToString())); }
}

В этом случае мне нужно скопировать / вставить этот код для каждого базового класса в приложении. Или я вижу другой вариант: определить специфичный для приложения корневой объект с регистратором в нем и подкласс его. Но семантически это звучит неправильно, потому что это не так "это" ситуация для меня.

есть ли лучшие варианты?

Ответы на вопрос(2)

Ваш ответ на вопрос