Filtre o texto de exceção em Elmah
-
21-09-2019 - |
Pergunta
Existe uma maneira de filtrar exceções em Elma usando a mensagem de exceção?
Exemplos:
"System.web.httPexception: Solicitação de tempo limitado." Não quero filtrar toda a HttPexception, mas apenas as solicitações cronometradas.
"System.web.httPexception: o comprimento máximo da solicitação excedido."
O que não quero fazer é escrever um código próprio para isso. Então é possível fazer isso com a configuração Buildin-web.config?
Obrigada!
Solução
Sim você pode. Basta usar uma expressão regular para interrogar a mensagem. Veja o exemplo abaixo para obter detalhes sobre como comparar a mensagem de exceção.
<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>
Outras dicas
Você pode configurar um manipulador de eventos no seu global.asax para evitar configurações feias de configurações regex:
void ErrorMail_Filtering(object sender, Elmah.ExceptionFilterEventArgs e)
{
if (e.Exception.Message.Contains("Request timed out"))
e.Dismiss();
}
Ver Filtragem de erros.