Регистрация необработанных исключений с помощью NLog?Должны ли ELMAH и NLog использоваться вместе? - PullRequest
12 голосов
/ 01 ноября 2010

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

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

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

Любая обратная связь с благодарностью.Пока что я не нашел хороших сообщений на этот счет?

Ответы [ 2 ]

16 голосов
/ 25 октября 2011

Отвечая на вопрос № 2, я только что прочитал эту статью , где объясняется, как регистрировать необработанные исключения в NLog. По сути, добавляет в файл Global.asax.cs что-то вроде:

protected void Application_Error() 
{
    Exception lastException = Server.GetLastError();
    NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
    logger.Fatal(lastException);
}
4 голосов
/ 05 ноября 2010

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

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

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

...