Как стать автором
Обновить

Комментарии 16

А поправьте меня, если я ошибаюсь — разве проект log4net не был заброшен 5 лет назад (по крайней мере этой датой датируются последние багфиксы на официальном сайте)? Я неоднократно встречал людей, отдающих предпочтение NLog на основании того, что последний активно развивается, в отличии от log4net.
В SVN последняя ревизия 4 сделана 4 месяца назад, так что видать не совсем еще заброшен
4 месяца назад — фикс одного плагина в пару строк кода. Последний фикс ядра — 20 месяцев назад (тоже пару строк), до этого — 3 года назад. Последний стабильный билд — 4 года назад.
В принципе, да, log4net не развивается.

Вот тут — stackoverflow.com/questions/710863/log4net-vs-nlog коллективный разум их сравнивает, Nlog'у отдаётся предпочтение.
Кстати, в NLog есть реализация блокировки файла мьютексом (свойство ConcurrentWrites у FileTarget). Надо бы поглубже изучить библиотеку.
Неплохо, но при такой постановки задачи я бы исспользовал Message Queue.
Да, я сразу оговорился, что менять схему логирования — задача иного уровня. По-хорошему необходимо более чётко продумывать логирование/мониторинг (БД, типы сообщений и т.п.).
хорошо так. но есть пара замечаний:
1. методы помещения в очередь [как он у вас называется?] и ThreadProc лучше сделать на Monitor.Pulse() | Monitor.Wait(), чтобы не засыпать в цикле на длинную константу[?] QueueEmptyCheckTimeoutInMilliseconds
2. log4net, конечно, мощь. но уж очень монструозная. и как говорили коментаторы выше – подзаброшенная.
1. Да, Вы абслоютно правы, с Monitor Pulse/Wait лучше должно быть. Сейчас просто в lock (syncObject) делается Enqueue у Queue, а QueueEmptyCheckTimeoutInMilliseconds по умолчанию 10мс.
2. Да уж. Странно, что Apache Foundation не занимается развитием библиотеки.
Проверил, logger.Debug несколько дольше дольше вызывается (раза в полтора), зато средняя длина очереди сократилась до 1,25-1,5, т.е. более надёжно.
Хмм, а я использую log4net… везде… и ColoredConsoleAppender, который вообще рулит :)
Ну и что что никто ничего к библиотеке не дописыват? Значит она уже идеальна!
простите, а вы смотрели исходники «идеальной» библиотеки?
нет
посмотрите. возможно, это одна из причин, по которой никто к ней ничего не дописывает.
так а не надо ничего дописывать… лично меня все устраивает
Главное пользоваться чем-нибудь типа Common.Logging (wrapper над популярным логирующими системами), чтобы не было мучительно больно при переходе с «теперь уже неустрающего» фрейморка на другой. Всё меняется, понадобится подобная функционально, как я описал, а окажется, что без переписывания библиотеки не выйдет…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации