log4net: сравнение adonetappender и Rollingfileappender

Я пытаюсь понять, какой из этих приложений будет работать лучше (чем короче время, тем лучше).

RollingFileAppender или ADONetAppender?

Какие еще параметры следует учитывать при выборе аппендера?

Я видел, что мой WebServer «держится» за изменяющийся файл. Могу я установить что-то вроде

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 

(ссылка: раздел FileAppender в документации log4net) в моем приложении с подвижным файлом чтобы несколько приложений / серверов могли писать в один и тот же файл?

наш сервер БД находится на диске SAN, но файлы журнала будут записываться локально на жесткий диск (или, возможно, в ближайшем будущем это будет диск SAN)


person ram    schedule 20.01.2010    source источник


Ответы (3)


Нам больше повезло с использованием приложения для прокручивающихся файлов. Мы заметили, что в случае сбоя сети приложение ADO.NET прекращает регистрацию. Например, перезагрузка после еженедельной установки пакета обновления убьет ваш регистратор.

Имейте в виду, что это также означает хранение ваших журналов на том же сервере, если вы собираетесь использовать файловый аппендер - http://ferventcoder.com/archive/2009/07/16/log4net-note-always-keep-your-logs-on-the-same-server.aspx

Я никогда не видел минимального запирающего механизма. Похоже, что вы заплатите некоторые штрафы за производительность, если воспользуетесь им: http://logging.apache.org/log4net/release/sdk/log4net.Appender.FileAppender.MinimalLock.html

person ferventcoder    schedule 22.01.2010
comment
интересная перспектива. Я думал, что регистрация в БД будет быстрее и проще (учитывая, что несколько приложений будут регистрироваться в одном приемнике) - person ram; 23.01.2010
comment
Мы думали об одном и том же. Если вы можете хранить свою базу данных на одном сервере, это может быть правильным решением. Однако мы не храним наши базы данных на тех же серверах, что и наши приложения, поэтому это не вариант для нас. - person ferventcoder; 27.01.2010

Если ваш ADONetAppender теряет соединение, он перестанет вести журнал, но с опцией

  <reconnectonerror value="true" />

он попытается повторно подключиться.

person cheesus    schedule 28.08.2010

Обычно я использую RollingFileAppender для локального диска - это надежно и быстро (если вы не можете писать на локальный диск, обычно возникает фатальная проблема).

Запись в ADO.NET может завершиться ошибкой - например, если база данных журналов отключена для резервного копирования во время работы вашего приложения.

Я бы также избегал использования MinimalLock из-за накладных расходов на производительность - вместо этого имел бы отдельный файл журнала для каждого приложения. Если вам время от времени требуется просмотреть данные консолидированного журнала, вы можете объединить соответствующие части журналов или просто открыть соответствующие части рядом друг с другом в средстве просмотра.

person Joe    schedule 07.02.2010