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