Elmah добавит сообщение об ошибке, зарегистрированном с помощью вызова для повышения (E)
-
26-09-2019 - |
Вопрос
Я немного запутался в том, как добавить сообщение об ошибке, регистрируемую программически с Elmah.
например:
public ActionResult DoSomething(int id)
{
try { ... }
catch (Exception e)
{
// I want to include the 'id' param value here, and maybe some
// other stuff, but how?
ErrorSignal.FromCurrentContext().Raise(e);
}
}
Похоже, все Elmah могут сделать это зарегистрировать необработанное исключение, как я могу также войти в систему моей собственной отладочной информации?
Решение
Вы можете бросить новое исключение, установив оригинал, так как внутреннее исключение и Elmah будут регистрировать сообщения для обоих:
catch(Exception e)
{
Exception ex = new Exception("ID = 1", e);
ErrorSignal.FromCurrentContext().Raise(ex);
}
покажет
System.Exception: ID = 1 ---> System.NullReferenceException: Object reference not set to an instance of an object.
Другие советы
Я обнаружил, что я также могу сделать что-то вроде:
Elmah.ErrorSignal.FromCurrentContext().Raise(new NotImplementedException("class FbCallback.Page_Load() Request.Url= " + Request.Url));
Для регистрации моих собственных сообщений. Тогда, когда я просматриваю
http://localhost:5050/elmah.axd
Я вижу свои сообщения как тип NotimplementedException. Не очень красиво, но работает.
Не связан с StackOverflow