Question

Y at-il un moyen de filtrer les exceptions à Elma en utilisant le message d'exception?

Exemples:
« System.Web.HttpException: demande a expiré. » Je ne veux pas filtrer tous HttpException, mais seulement les demandes délai d'attente dépassé.
"System.Web.HttpException: longueur maximale de la demande dépassé."

Ce que je ne veux pas faire est d'écrire propre code pour cela. Est-il possible de le faire avec la configuration buildin-web.config?

Merci!

Était-ce utile?

La solution

Oui, vous pouvez. Il suffit d'utiliser une expression régulière pour interroger le message. Voir l'exemple ci-dessous pour plus de détails sur la façon de comparer le message d'exception.

<errorFilter>
  <test>
    <!-- http://groups.google.com/group/elmah/t/cbe82cee76cc6321 -->
    <and>
      <is-type binding='Exception'
               type='System.Web.HttpException, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' />
      <regex binding='Exception.Message'
             pattern='invalid\s+viewstate'
             caseSensitive='false' />
      <regex binding='Context.Request.UserAgent'
             pattern='Trident/4(\.[0-9])*'
             caseSensitive='false' />
    </and>
  </test>
</errorFilter>

Autres conseils

Vous pouvez configurer un gestionnaire d'événements dans votre global.asax pour éviter les paramètres de configuration de regex laid:

void ErrorMail_Filtering(object sender, Elmah.ExceptionFilterEventArgs e) 
{     
    if (e.Exception.Message.Contains("Request timed out"))
        e.Dismiss(); 
}

Voir Erreur Filtrage .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top