Каркас ведения журнала для приложения ASP.NET - PullRequest
3 голосов
/ 20 декабря 2010

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

1 -Log4Net

2 - Блок приложения ведения журнала

3 - Elmah

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

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

Ответы [ 6 ]

3 голосов
/ 20 декабря 2010

И log4net, и Logging Application Block являются допустимыми вариантами.Я думаю, что ELMAH в основном фокусируется на ведении журнала error , так что это, вероятно, не единственное, что вам нужно.

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

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

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

1 голос
/ 20 декабря 2010

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

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

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

  3. Elman - отлично подходит для входа в приложение ASP.NET для регистрации исключений.Для общей регистрации сообщений я все же хотел бы использовать Log4Net.

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

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

0 голосов
/ 20 декабря 2010

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

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

0 голосов
/ 20 декабря 2010

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

0 голосов
/ 20 декабря 2010

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

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

HTH.

0 голосов
/ 20 декабря 2010

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

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

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