Следует ли внедрять инфраструктуру ведения журнала при использовании IoC / DI, если используется фасад ведения журнала?

Я использую Autofac в качестве своего IoC и из всего, что я прочитал по теме DI, учит использовать «инъекцию в конструктор». явно выставить зависимости класса ... Тем не менее, я также использую фасад журналирования (Common.Logging) с Log4Net и создал модуль Autofac для его внедрения. Теперь, в каждом классе, в котором я хочу сделать некоторую регистрацию, у меня есть дополнительный параметр конструктора (см. Образец # 1) ....

Мне интересно, нужна ли регистрация DI при использовании регистрации фасада? Я понимаю, что явное раскрытие зависимостей через сигнатуру конструктора является хорошей архитектурой. but в случае вырубки фасада я считаю, что верно следующее:

I can still "swap out" logging framework at any time The class IMHO is not really dependent on Logger. If no logging is configured NullLogger is used. It is almost "it's thre if you need it" vs. "it won't work unless you supply it" kind of deal...(see sample #2)

Итак, что думают другие? Является ли инъекция рубки фасада излишним? Есть некоторыепохожие вопросы по этой теме, но в более общих чертах (инфраструктура) - меня в основном интересует логирование ....

// IoC "way"
public class MyController : BaseController
{
    private readonly ILog _logger;

    public MyController(ILog logger)
    {
        _logger = logger;
    }

    public IList<Customers> Get()
    {
        _logger.Debug("I am injected via constructor using some IoC!");
    }
}

// just use the logger "way"
public class MyController : BaseController
{
    private static readonly ILog Logger = LogManager.GetCurrentClassLogger();

    public IList<Customers> Get()
    {
        Logger.Debug("Done! I can use it!");
    }
}

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

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