J'ai configuré une application MVC pour enregistrer les erreurs avec log4net. Dans mon global.asax, j'attrape les erreurs d'application en utilisant la méthode Application_Error (s_log est mon gestionnaire de journalisation qui est un wrapper autour de Log4net).Comment consigner les erreurs d'application lorsque customErros est activé?
protected void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError().GetBaseException();
s_log.LogException(true, ex, "Application Error");
}
Lorsque customErrors est réglé sur « Off » Je reçois l'écran jaune de la mort et peut voir l'erreur dans mon fichier journal. Lorsque customErrors est défini sur "On", je vois ma page d'erreur (et l'erreur détaillée) mais rien n'est écrit dans le fichier journal (le débogage n'atteint pas l'erreur Application_Error). Est-ce que quelqu'un peut m'expliquer pourquoi cela se produit?
Error.aspx
<h1>Sorry, an error occurred while processing your request.</h1>
<strong>Controller: </strong> <%= Model.ControllerName %><br />
<strong>Action: </strong> <%= Model.ActionName %>
<% if (Model.Exception != null) { %>
<p>
<strong>Exception Details:</strong><br />
<%= Model.Exception.ToString() %>
</p>
<% } %>
customErrors section web.config
<customErrors mode="On" defaultRedirect="~/error">
<error statusCode="403" redirect="~/error"/>
<error statusCode="404" redirect="~/error"/>
</customErrors>