2012-03-19 2 views
0

После некоторого бою мне удалось получить действующее приложение веб-форм ASP.NET, которое использует расширение журнала Ninject и log4net как фреймворк регистрации. (кредиты основаны на this blog). Но у меня есть некоторые вопросы о том, как продолжить.Использовать log4net с расширениями ведения журнала Ninject в приложении WebForms

Во-первых, мне нужно было публиковать собственность ILogger, потому что она оставалась пустой, если она была частной или защищенной. Так что теперь у меня есть это:

[Inject] 
protected ILogger _logger { get; set; } 

Вместо:

private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 

Я могу жить с этим, но это кажется странным.

Другое дело - ThreadContext, который использует log4net для заполнения текущего контекста. Я до сих пор использовать его как этот

using (ThreadContext.Stacks["NDC"].Push(MethodBase.GetCurrentMethod().Name)) 
{ 
    _logger.Info("test"); 
} 

Но Offcourse, что отнимает все абстракции, что я только что добавленные .. Так что я ищу некоторую опыт/наилучшую практику, что другие люди могут иметь с этим сценарием.

Дополнительный вопрос: я обновил log4net до 1.2.11.0, который является текущей версией в NuGet, и теперь Ninject.Logging.log4net поврежден, потому что он ожидает версию 1.2.10.0 ... есть способ исправить это ?

ответ

1

Дополнительный вопрос: Я модернизировал log4net до 1.2.11.0, который является текущей версии в NuGet, и теперь Ninject.Logging.log4net сломан , потому что он ожидает, что версия 1.2.10.0 ... есть способ исправить это?

Вы пытались исправить разрешенные версии с помощью [xx] в файле Packages.config?

<package id="log4net" version="1.2.10" allowedVersions="[1.2.10]" /> /> 

Это предотвратит обновление следующих обновлений до 1.2.11 и более.

http://docs.nuget.org/docs/reference/versioning

+0

Я не знаю, как использовать это .. Я держу в конечном итоге с версии 1.2.11. – Hanno

+0

Я редактирую свой ответ, это атрибут allowedVersion, который необходимо изменить. Сначала вы должны удалить версию 1.2.11. Затем обновите файл packages.config и запустите команду install-package. – user484189

Смежные вопросы