Registrazione eccezioni non gestite utilizzando NLog? Qualora ELMAH e NLog essere utilizzati insieme?
-
27-09-2019 - |
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:
- è utilizzando sia ELMAH e NLog eccessivo? Utilizzando ELMAH per le eccezioni non gestite e NLog per tutto il resto?
- E 'possibile configurare NLog per accedere eccezioni non gestite in nlog.config o è il codice personalizzato necessario?
- Se è necessario un codice personalizzato, dove sarebbe il posto migliore per aggiungerlo? Il metodo OnException nel framework MVC? Il file global.asax?
Anny è molto apprezzato. Finora non ho trovato dei buoni post su questo argomento?
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);
}