Utilisez ELMAH pour enregistrer les erreurs de base de données
-
24-09-2019 - |
Question
J'utilise ELMAH pour gérer les exceptions dans mon projet ASP.Net MVC. Je voudrais l'utiliser pour enregistrer les erreurs comme délai de connexion de base de données, le délai de connexion de requête et d'autres. Est-ce possible avec ELMAH?
La solution
Si vous laissez l'exception sur propager au module Web Elmah il se connectera automatiquement ces exceptions.
Vous pouvez cependant ouvrir une session directement à programatically Elmah, il y a deux façons de le faire:
Vous pouvez utiliser le code comme ceci dans votre clause catch dans le code:
try{....}
catch(Exception ex) { Elmah.ErrorSignal.FromCurrentContext().Raise(ex); }
Une autre façon de le faire est la suivante:
Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(new Elmah.Error(ex));
Je voudrais cependant envelopper ce code dans une interface de style IErrorLogger plus générique afin que votre code de niveau inférieur n'a pas besoin d'avoir une dépendance dur sur lui-même Elmah
Autres conseils
Je ne sais pas si elle est avec ELMAH (jamais utilisé), mais vous pouvez faire tout ce que les MS Ent Libs, qui sont hautement configurables.