2010-11-01 3 views
12

Я использую ELMAH в моих проектах ASP.NET MVC, и мне очень нравится его простота. Но мне нужна была возможность регистрировать определенные события в моем коде в способе log.Info («сообщение»). Поскольку ELMAH не обеспечивает эту способность, я начал смотреть на NLog.Регистрация необработанных исключений с помощью NLog? Должны ли использоваться ELMAH и NLog вместе?

Несколько вопросов пришло на ум:

  1. Пользуется как ELMAH и NLog излишеством? Использование ELMAH для необработанных исключений и NLog для всего остального?
  2. Можно ли настроить NLog для регистрации необработанных исключений в файле nlog.config или требуется собственный код?
  3. Если пользовательский код необходим, где было бы лучшим местом для его добавления? Метод OnException в структуре MVC? Файл global.asax?

Anny обратная связь очень ценится. До сих пор я не нашел хороших постов по этому вопросу?

ответ

4

На самом деле вы можете вызвать предупреждение от ELMAH. Как так:

ErrorSignal.FromCurrentContext().Raise(new System.ApplicationException("An error occured in SendEmail()", ex)); 

Не забудьте добавить ссылку на elmah.dll и добавить using Elmah; в файл. См. here еще несколько примеров.

15

Ответ на вопрос номер 2, я только что прочитал this article, где объясняется, как регистрировать исключения без обработки с помощью NLog. В основном добавляется файл Global.asax.cs примерно так:

protected void Application_Error() 
{ 
    Exception lastException = Server.GetLastError(); 
    NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); 
    logger.Fatal(lastException); 
} 
Смежные вопросы