Использование Common.Logging с Asp.net MVC и Castle Windsor - PullRequest
4 голосов
/ 27 ноября 2010

Я хотел бы использовать Common.Logging для удаления зависимостей в конкретной среде ведения журналов, но я не уверен, как подключить интерфейс ILog с помощью контейнера IoC Castle Windsor.Есть ли способ сделать это?Спасибо!

Ответы [ 2 ]

7 голосов
/ 13 декабря 2010

Вы действительно хотите сделать оба? (Использовать Common.Logging И внедрить его через Castle Windsor IoC?) Использование Common.Logging позволяет вашему приложению НЕ иметь жесткой зависимости от конкретной среды ведения журналов (например, log4net, NLog, Enterprise Logging). Я не пользуюсь Каслом, но, насколько я понимаю, цель его лесозаготовок аналогична. Вы можете настроить Castle Windsor на использование определенной среды ведения журналов (например, log4net или NLog), но ваше приложение не должно знать, какая структура ведения журнала в конечном итоге используется.

Инъекция Common.Logging через замок Виндзор похоже на ношение пояса и подтяжки, чтобы держать штаны! Вы будете вводить абстракцию регистрации через собственную утилиту регистрации абстракции регистрации Виндзора!

Я предполагаю, что вы действительно хотите использовать одну или другую технологию (Common.Logging или средство регистрации Castle Windsor).

Если вы действительно хотите ввести Common.Logging через Castle Windsor, вы можете найти эту ссылку полезной:

Вход с помощью Castle.Facabilities.Logging и log4net

Помимо прочего, в нем описывается, как написать собственное средство для регистрации в Castle Windsor, которое будет введено Castle Windsor.

4 голосов
/ 27 ноября 2010

Создайте свой собственный объект для Common.Logging, узнайте, как это делается для существующего Logging Facility в Виндзоре . Common.Logging, вероятно, имеет фабрику логгеров, которую вы бы использовали для создания логгера.

Или вы можете сэкономить на работе и просто использовать ILogger Касла с возможностью ведения журнала: Windsor будет внедрять экземпляры ILogger в ваши классы для вас. Работает с log4net и NLog v2.

...