Registrazione eccezioni non gestite utilizzando NLog? Qualora ELMAH e NLog essere utilizzati insieme?

StackOverflow https://stackoverflow.com/questions/4066042

Domanda

Sto usando ELMAH nei miei progetti ASP.NET MVC e mi piace molto la sua semplicità. Ma avevo bisogno la possibilità di accedere certi eventi nel mio codice in un ( "messaggio") maniera log.Info. Dal momento che ELMAH non prevede che la capacità ho iniziato a guardare NLog.

Qualche domanda è venuto in mente:

  1. è utilizzando sia ELMAH e NLog eccessivo? Utilizzando ELMAH per le eccezioni non gestite e NLog per tutto il resto?
  2. E 'possibile configurare NLog per accedere eccezioni non gestite in nlog.config o è il codice personalizzato necessario?
  3. Se è necessario un codice personalizzato, dove sarebbe il posto migliore per aggiungerlo? Il metodo OnException nel framework MVC? Il file global.asax?
risposte

Anny è molto apprezzato. Finora non ho trovato dei buoni post su questo argomento?

È stato utile?

Soluzione

Si può infatti innescare un avviso da ELMAH. In questo modo:

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

Non dimenticare di aggiungere un riferimento a elmah.dll e aggiungere using Elmah; al file. Vedere qui per un po 'di più esempi.

Altri suggerimenti

Rispondendo alla domanda numero 2, Ho appena letto questo articolo dove si spiega come accedere eccezioni non-trattati con NLog. In sostanza è l'aggiunta nel file Global.asax.cs qualcosa come:

protected void Application_Error() 
{
    Exception lastException = Server.GetLastError();
    NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
    logger.Fatal(lastException);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top