2010-12-20 3 views
3

Мое приложение должно регистрировать информацию о действиях пользователя (вставких, обновлениях, удалениях и т. Д.) И исключениях, и я хочу сохранить журнал на Oracle10, поэтому я искал некоторые рамки журнала для использовать. Я читал немного о:Структура ведения журнала для приложения ASP.NET

1 -Log4Net

2 - Logging Application Block

3 - Elmah

Что вы думаете об этих бревенчатых инструментов? Какая хорошая структура (или способ реализации) регистрируется в моем приложении?

* После обсуждения с руководителем проекта, Logging Application Block будет наш выбор, но позволяет комментарий об этом =)

+0

См. Ответы в http://stackoverflow.com/questions/710863/log4net-vs-nlog?answertab=votes#tab-top –

ответ

3

Как log4net, так и регистрационный блок регистрации являются допустимыми. Я думаю, что ELMAH в основном сосредоточен на ошибках, так что это, вероятно, не (единственное), что вы хотите.

На работе я использую log4net по нескольким проектам. Он стабилен, совершенен и расширяем, и у нас никогда не было никаких проблем с ним.

Я бы, вероятно, сделал регистрацию с log4net и журнальными исключениями с ELMAH. Он может регистрировать необработанные исключения вручную, и любое исключение, которое вы поймаете и обрабатываете в своем приложении, может быть зарегистрировано с помощью одного вызова ELMAH. Это может показаться двойной регистрацией (и это :-)). Но очень важно иметь журнал ELMAH, когда что-то неожиданное провалилось в вашем приложении.

Я слышал хорошие вещи о NLog project, но не использовал его сам. Кажется, что это немного сложнее, чем log4net, но имеет дополнительное преимущество, заключающееся в возможности добавлять контекстуальную информацию для автоматической регистрации сообщений (немного как ELMAH).

+0

Нет причин, по которым OP не может использовать ELMAH для регистрации ошибок и, скажем, log4net для регистрации информации, не связанной с ошибкой. –

+0

@ Scott, конечно, нет, и это на самом деле тоже то, что я делаю сам. Добавил это к ответу, чтобы избежать путаницы. – driis

1

Мое мнение о различных рамок:

  1. Log4Net - Любить это. Это система регистрации, которую я использую чаще всего. Все довольно легко начать. Он также очень гибкий и позволяет вам записывать практически все.

  2. Регистрационный блок приложений - также хороший вариант. Я по-прежнему предпочитаю Log4Net (но причины в основном личные).

  3. Elman - Отлично подходит для входа в приложение ASP.NET для регистрации Исключения. Тем не менее, для общего ведения сообщений я все равно поеду с Log4Net.

И я предполагаю, что на основе моих взглядов, что я хотел бы предложить вам сделать ...

И если нет, то используйте Log4Net и создать адаптер можно использовать в приложении, чтобы сделать вход простым.

+0

Спасибо Джастин. Мне нравится log4Net тоже, блок приложения тоже кажется хорошим. – Ewerton

0

Мне лично нравится BitFactory.Logging, потому что он легкий и использует нужное количество абстракций, чтобы сделать код вызова легко проверяемым.

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

0

Я лично всегда создаю оболочку в любом случае, поэтому у меня есть собственная реализация ILog, которая работает с тем, что вы выбираете. Это упрощает замену или реализацию.

Я пробовал # 2, но это было вроде боль; # 1 бы хорошо сработал для нас, но мы не пошли на это, просто пошли простые пользовательские протоколирования. Все, что я знаю о № 3, это то, что я знаю, что у кого-то есть проблемы с его внедрением в своей организации. Не знаю почему, но на самом деле выглядит довольно интересно. Я не думаю, что вы можете пойти не так, как с кем-либо лично. Это частично зависит от API, который вам нравится.

HTH.

0

Log4net очень тихий, это в основном версия log4j. Elmah также хорош, особенно если вы найдете (как я), что вы не можете писать файлы в производственной среде, так как вместо этого он записывается в БД. Кроме того, Elmah больше подходит для регистрации исключений, и это классно, потому что позволяет вести журнал на основе событий. В моих проектах я нормально развертываю как log4net, так и Elmah

0

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

Для входа в приложение dotNet используйте TraceSource для записи информации о протоколировании и пользовательского TraceListener для записи в db. На самом деле не нужна инфраструктура за пределами библиотеки базового класса.

+0

Спасибо Кристен, но нам нужно зарегистрировать какое-то деловое действие, например: «Цена продукта os установлена ​​на 10%». – Ewerton

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