Как правильно настроить Ninject.Extensions.Logging.Log4Net в моем проекте MVC3 - PullRequest
11 голосов
/ 20 марта 2012

Я пытаюсь правильно использовать Ninject, чтобы добавить log4net, входящий в мое приложение MVC3.Я использую пакет Ninject.MVC3 , поэтому у меня есть класс NinjectMVC3, который автоматически расширяет метод App_Start и содержит метод RegisterServices, который связывает все зависимости.У меня также есть пакет Ninject.Extensions.Logging.Log4Net , но я не знаю, как его использовать.Я уже знаю, как настроить log4net в моем web.config, но не знаю, как использовать это расширение для DI.

Я прочитал все следующие статьи / посты, но ни одна из них, кажется, не определяет, какчтобы правильно настроить проект для ведения журнала DI.

На http://dotnetdarren.wordpress.com/2010/07/29/logging-in-mvc-part-4-log4net/, Даррен предлагает отличную статью, но, похоже, не имеет дело с DI (по крайней мере, я ее не вижу).

В Используя Ninject для заполнения зависимости Log4Net , здесь Remo Gloor заявляет, что расширения должны предоставлять все, что необходимо для реализации, но не показывает код того, как его создать.

Документация для ninject.extensions.logging по адресу https://github.com/ninject/ninject.extensions.logging/wiki/Using в лучшем случае очень ограничена.Я перечитывал его много раз и до сих пор не вижу, как использовать связывание инъекций в классе NinjectMVC3 или конкретные примеры того, как вызвать регистратор из моего класса контроллера, например.

ВНаиболее многообещающая статья, Moosaka предоставляет отличный код на Ninject.Extensions.Logging.Log4net, непредвиденное поведение , но когда я пытаюсь это сделать, я получаю ошибку компиляции в LoggerFactory на ILogger logger = new Logger(type);, заявляя "Не удается получить доступ к защищенному конструктору«Логгер» здесь ».Кроме того, он заявляет: «Уберите весь этот беспорядок в отдельную библиотеку классов».Означает ли это как отдельный проект?

Я просто заблудился во всех отличающихся опциях и датированных сообщениях и хотел бы получить любые сведения о том, как использовать Dependancy Injection с Ninject и Log4Net в моем проекте MVC3.Кроме того, если это имеет значение, весь мой код Ninject находится в моем доменном проекте, но регистрация должна осуществляться как из домена, так и из веб-проекта (и проверялась в моих модульных тестах).Любая помощь приветствуется.

1 Ответ

9 голосов
/ 21 марта 2012

Вам не нужно ничего настраивать, кроме обычной конфигурации log4net.

Все, что вам нужно сделать, это ввести ILogger везде, где вы хотите войти.https://github.com/ninject/ninject.extensions.logging/wiki/Using

...