Модуль Autofac (точнее, Orchard.Logging.LoggerModule
) обрабатывает это.В основном - он сканирует каждую зависимость и заполняет все свойства типа ILogger
ссылкой на соответствующий экземпляр регистратора.Каждая зависимость получает свой собственный регистратор с именем, равным полному имени типа (включая пространство имен) содержащего класса .
. NullLogger
- это просто заполнитель, поэтому доступ к свойству не вызовет *За 1008 * с до того, как свойство будет установлено Autofac.
Расширение ведения журнала по умолчанию является довольно сложной задачей, так как включает в себя три вещи:
- создание пользовательскогореализация ILoggerFactory (точно так же, как по умолчанию Orchard.Logging.CastleLoggerFactory) и
- создают модуль Autofac , который регистрирует эту реализацию в контейнере (как упомянуто
LoggerModule
) - подавить текущий модуль регистрации по умолчанию , украсив новый с помощью
[OrchardSuppressDependency("Orchard.Logging.LoggingModule")]
UPDATE
Простопонял, что я не рассмотрел самую важную часть вопроса здесь :) Да, Orchard использует log4net , поэтому вы можете изменить настройки по умолчанию с помощью Config / log4net.config file.