Puoi indicarmi alcuni tutorial o esempi su come posso registrare tutte le eccezioni non gestite che si verificano sulla mia app web mvc utilizzando log4net. Grazielog4net registra tutti gli errori dell'applicazione non gestiti
risposta
incollo sotto il codice che uso sul mio Global.asax che mi sembra soddisfare per ora .. io sono sempre tutte le eccezioni non gestite sul mio log4net generato i file di log ..
public class MvcApplication : System.Web.HttpApplication
{
private static readonly ILog log = LogManager.GetLogger(typeof(MvcApplication));
void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError().GetBaseException();
log.Error("App_Error", ex);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
log4net.Config.XmlConfigurator.Configure();
}
}
Puoi anche usare un HttpModule per registrare il gestore di eventi errore: http://codebetter.com/blogs/karlseguin/archive/2006/06/12/146356.aspx – dahlbyk
Ti consigliamo di aggiungere 'routes.IgnoreRoute ("{* favicon}", new {favicon = @ "(. * /)? favicon.ico (/.*)?"}); 'al metodo RegisterRoutes se non si dispone di una favicon localizzata nel proprio sito – Tr1stan
Informazioni su HttpModule: il metodo per registrare il modulo dettagliato nell'articolo collegato si applica alla vecchia modalità di pipeline di IIS classica, non alla modalità integrata (ora consigliata). Vedere https://msdn.microsoft.com/library/ms227673(v=vs.100).aspx per i dettagli su come registrarlo se si utilizza la modalità integrata. – personne3000
Senza essere faceto here you go.
try
{
NotImplementedException nie = new NotImplementedException();
throw nie;
}
catch (Exception e)
{
Log.Fatal(e);
}
Supponendo che si sta utilizzando .NET 3.5, è possibile utilizzare metodi di estensione, ed estendere System.Exception e aggiungere un metodo log (registro log4net.ILog), quindi ovunque si cattura un'eccezione nella vostra app, supponendo hai impostato correttamente l'istanza Log, quindi lo fai facilmente. La tua classe di estensione potrebbe crescere un bel po ', con vari sovraccarichi per Debug, Info, Avvisi, Errore e Fatale ecc.
scusa la mia domanda non era chiara - Devo registrare tutte le eccezioni non gestite – kaivalya
Potresti essere interessato a verificare cosa sia Aspect Oriented Programming (AOP).
Abbiamo realizzato questo con Post sharp (solo - non abbiamo usato log4net ma tracciante personalizzato).
Basta controllare prima se log4net non hanno qualcosa per questo 'out-of-the-box'. Non ne sono sicuro.
Non esiste un supporto integrato per questo in log4net. È necessario implementare the Application_Error event in Global.asax e chiamare lì il logger log4net. L'evento verrà attivato per tutti gli eventi non gestiti nella tua app.
per ASP.NET applicazioni che ti piace utilizzare l'evento System.Web.HttpApplication.Error
che viene inserito nel file Global.asax
.
protected void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
// Stop error from displaying on the client browser
Context.ClearError();
logger.Fatal(ex.ToString);
}
guardare Managing unhandled exceptions
- 1. Log4Net non registra o errore
- 2. log4net con EventLogAppender non registra
- 3. Log4net traceappender non registra nulla
- 4. log4net non registra le dichiarazioni di debug
- 5. Come rilevare gli errori non gestiti con PHPseclib?
- 6. Elmah registra solo 15 errori
- 7. Perché il codeigniter non registra errori!
- 8. L'applicazione non registra
- 9. php nascondi TUTTI gli errori
- 10. CDI con gli oggetti non gestiti
- 11. Registra o registra tutti i browser DOM/JQuery Event (s)
- 12. Emissione di tutti gli errori PHP nel database non error_log
- 13. Correzione rapida di tutti gli errori intenzionali
- 14. Gli errori lanciati da qui non vengono gestiti per fare {} catch in Swift 2.0
- 15. log4net non leggerà da app.config
- 16. Registra tutte le eccezioni nell'app .NET utilizzando log4net
- 17. Nginx Php-fpm non registra 500 errori ovunque
- 18. Scrapy eliminare gli errori trattati
- 19. Elmah non registra eccezioni
- 20. Log4net accede al computer dello sviluppatore, ma nel server di test non registra
- 21. Elmah non si attiva quando sono abilitati gli errori personalizzati
- 22. Forcing di tutti gli errori da mostrare in Xcode
- 23. Qualcosa non funziona con Log4Net?
- 24. Convalida WPF: azzeramento di tutti gli errori di convalida
- 25. Come catturare e ri-lanciare tutti gli errori in MySQL
- 26. Clang: promozione di tutti gli avvisi agli errori Tranne per ...
- 27. eliminando gli errori dependencies.dependency.version
- 28. Come posso nascondere tutti gli errori di un progetto Eclipse?
- 29. PyCharm può elencare tutti gli errori Python in un progetto?
- 30. Trova tutti gli errori di compilazione in un progetto Delphi
Si può o non può trovare questo interessante (non sono sicuro se funzionerà con log4net): ELMAH - http://code.google.com/p/elmah/ –
Grazie! In realtà ho anche collegato la mia app a Elmah mentre lavoravo a questo problema e mi piace molto l'interfaccia a portata di mano che ha. Vedo me stesso usarlo più rispetto a log4 net per ora ma vedrò come va con più esperienza .. – kaivalya