2009-07-21 2 views
0

Мне нужно создать отслеживание кликов и конверсий (более конкретные и сфокусированные, чем файлы журнала IIS), на существующий веб-сайт. Я ожидаю довольно большой нагрузки. Я исследовал использование log4net, в частности FileAppender Class, но в документах указано: «Этот тип небезопасен для многопоточных операций».Способ регистрации файлов с высокой загрузкой в ​​файл?

Может ли кто-нибудь предложить надежный подход к решению для такого типа тяжелых лесозаготовок? Мне очень понравилась гибкость, с которой мог бы работать log4net. Могу ли я обойти отсутствие безопасной многопоточности с использованием lock? Повлияет ли это на проблемы производительности/конкуренции?

ответ

1

Хотя файл FileAppender сам по себе небезопасен для ведения журнала, я бы, конечно, ожидал обычных путей доступа к нему через log4net, чтобы быть потокобезопасным.

От FAQ:

  • log4net потокобезопасно.

Другими словами, либо основная структура log4net делает достаточную блокировку, либо имеет выделенный поток ведения журнала, обслуживающий очередь журналов журнала/производителя.

Любая система каротажа, которая не была поточно-защищенной, долго не сохранилась.

0

Я также заинтересован в ответе, но я расскажу вам, что мне сказали, когда я попытался найти решение.

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

Однако я уверен, что есть лучшее решение.

1

Вы можете проверить блок приложений ведения журнала, доступный в Microsoft Enterprise Library. Он предлагает целый ряд различных типов регистраторов, а также удобный графический интерфейс, который вы можете указать на свой app.config \ web.config, чтобы изменить его. Поэтому вам не нужно просачиваться через XML самостоятельно.

Вот ссылка на хороший учебник о том, как начать работу с ним:

http://elegantcode.com/2009/01/20/enterprise-library-logging-101/

0

При использовании системного журнала, вы не будете иметь никаких проблем многопоточности. Syslog отправляет логины с использованием UDP в logdaemon (потенциально может быть на одном компьютере).

Работает особенно хорошо, если у вас больше запущенных процессов/служб, поскольку все строки журнала объединены в один инструмент просмотра.

Если вы ожидаете действительно тяжелых нагрузок, посмотрите, как это делают ребята из facebook: http://developers.facebook.com/scribe/ Вы можете использовать их лог-файл с открытым исходным кодом. Я не думаю, что пока вы нажмете на свой груз, так что вы должны быть в безопасности в течение некоторого времени!

R

Смежные вопросы