Filtrar el texto de excepción en ELMAH
-
21-09-2019 - |
Pregunta
¿Hay una manera de excepciones de filtros en Elma utilizando el mensaje de excepción?
Ejemplos:
"System.Web.HttpException: Tiempo de espera agotado". No quiero para filtrar todas las HttpException, sino solamente las peticiones en tiempo de espera superado.
"System.Web.HttpException: Longitud máxima solicitud excedido."
Lo que no quiero hacer es escribir código propio para eso. Entonces, ¿es posible hacer esto con el edifi-web.config configuración?
Gracias!
Solución
Sí se puede. Sólo tiene que utilizar una expresión regular para interrogar el mensaje. Véase el siguiente ejemplo para obtener detalles sobre cómo comparar el mensaje de excepción.
<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>
Otros consejos
Puede configurar un controlador de eventos en su Global.asax para evitar ajustes de configuración de expresiones regulares fea:
void ErrorMail_Filtering(object sender, Elmah.ExceptionFilterEventArgs e)
{
if (e.Exception.Message.Contains("Request timed out"))
e.Dismiss();
}