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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top