Регистрация операций веб-служб за балансировщиком нагрузки - PullRequest
0 голосов
/ 12 октября 2018

Я разработал некоторые веб-сервисы, которые будут установлены на 4 разных серверах за балансировщиком нагрузки поддерживает сеансы.

Я использую c # и log4net.

Приложениеявляются RollingFileAppender и AdoNetAppender.

Я читаю из https://logging.apache.org/log4net/release/faq.html (раздел Как получить несколько процессов для входа в один файл? )

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

Я не могу использовать RollingFileAppender с MinimalLock.Но я хочу войти с разных серверов в один и тот же файл.

Я предпочитаю вести log4net, но меня интересует и другое решение (не системное логирование Linux).Коммерческие решения не разрешены для затрат.

1 Ответ

0 голосов
/ 12 октября 2018

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

У вас есть несколько альтернатив:

  • Запись в разные файлы- на каждом сервере может быть отдельный файл
  • . Отправьте все свои журналы в одно приложение, которое затем зарегистрирует файлы.Это сделает ведение журнала более хрупким и потребует дополнительных усилий по разработке.
  • Регистрация в базе данных - базы данных рассчитаны на одновременную запись нескольких процессов
  • Запись на сервер ведения журнала - Seq , Stackify Retrace и Azure Application Insights - это несколько примеров надежных решений, предназначенных для загрузки журналов из нескольких приложений, плюс вы получаете гораздо лучшие возможности
...