Какой самый быстрый appender для log4Net? - PullRequest
9 голосов
/ 02 февраля 2010

Какой самый быстрый appender для log4Net помимо ConsoleAppender?

Ответы [ 3 ]

18 голосов
/ 02 февраля 2010

Оформление BufferingForwardingAppender . Мы используем это, которое пересылает RollingFileAppender . Он объединяет записи и позволяет коду продолжаться, не дожидаясь записи. Мы настроили Evaluator для принудительного сброса на пороге WARN и установили Lossy для false, чтобы не пропустить ни одного сообщения.

<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender">
    <bufferSize value="512" />
    <lossy value="false" />
    <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="WARN"/>
    </evaluator>
    <appender-ref ref="RollingFileAppender" />
</appender>
6 голосов
/ 02 февраля 2010

Вы можете написать log4Net, эквивалентный NullAppender , что было бы очень быстро ... (Упс - я изначально думал, что вопрос был о log4j; тот же совет применим.) *

Конечно, это не принесло бы ничего полезного - что заставляет меня задуматься, почему вы уделяете так много внимания скорости. Обычный подход состоит в том, чтобы решить, что вам нужно, а затем сравнить / профилировать его, чтобы проверить, работает ли он адекватно. Я подозреваю, что вы будете завалены большим количеством данных, чем сможете обработать, прежде чем они станут узким местом. У вас есть известные проблемы с производительностью при ведении журнала?

0 голосов
/ 04 апреля 2012

вы должны рассмотреть

  1. запись в файл намного быстрее, чем запись в консоль
  2. Я полагаю, что ваша проблема связана с подготовкой (завершение данных журнала, а затем не использование) используйте log.canLog, чтобы убедиться, что вы можете войти в систему, прежде чем создавать свои данные (обычно это большой потребитель)
  3. убедитесь, что вы не используете все виды полей, которые отнимают много времени, такие как текущие учетные данные пользователя и т. Д ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...