Использование log4net и где это реализовать и использование с elmah? - PullRequest
14 голосов
/ 29 апреля 2009

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

В общем, я решил взглянуть на log4net.

У меня есть 2 клиента (wpf и asp.net), которые оба используют бизнес-логику.

Должен ли я вызывать события в бизнес-логике и в клиенте также?

Я предполагаю, что бизнес-логика будет использовать app.config / web.config (бизнес-логика находится на другом уровне - проект класса)

Кто-нибудь использовал log4net вместе с elmah, есть ли в любом случае вы можете заставить их использовать одну и ту же таблицу БД ??

log4net кажется мне идеальной основой для ведения журналов, но у elmah есть преимущество в предоставлении всех переменных SERVER, трассировки стека и т. Д.

ИЛИ возможно, можно заставить log4net также сохранить Stacktrace и полностью заменить elmah ??

Любые комментарии действительно приветствуются

Ответы [ 2 ]

25 голосов
/ 29 апреля 2009

Они используются для двух разных целей.

Elmah используется для отлова и хранения исключений, которые вы не ожидали . Он также предоставляет несколько внешних интерфейсов (веб-страница, RSS, оповещение по электронной почте) для доставки исключений.

Log4net, с другой стороны, предназначен для регистрации событий (, включая ошибок, вызванных исключениями), которые, как вы знали, могут произойти (в противном случае у вас не будет блока try / catch).

Следовательно, вы должны использовать оба, а не один или другой.

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

2 голосов
/ 29 апреля 2009

Я уже некоторое время пользуюсь log4net, и у меня в основном есть уровень данных, а бизнес-уровни выполняют всю регистрацию ошибок. Однако, если на вашем уровне представления происходит приличное количество «вычислений» с объектами, было бы целесообразно также зарегистрировать соответствующую информацию.

Вы можете настроить log4net так, чтобы его настройки сохранялись в файле .config или в его отдельном файле конфигурации. Преимущество отдельного файла заключается в том, что если вам нужно переключать режимы журналирования на лету, вы можете сделать это в отдельном файле .config, и IIS не будет запускать обновление сайта приложения.

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

Если вам не нужен детальный уровень ведения журнала для ваших приложений, я бы пошел с ELMAH. Если вы хотите перейти к более детальному подходу, найдите время для работы log4net в своем приложении.

Это мои 10 битов.

...