2011-03-29 83 views
0

我想知道,如果有,我可以寫ELMAH以下邏輯下過濾掉錯誤日誌的方式:多ELMAH篩選條件

如果錯誤是404 favicon.ico誤差404在/1.xml誤差爲404 /2.xml

我發現只是做它的favicon.ico方式如圖所示:

<errorFilter> 
    <test> 
    <and> 
     <equal binding="HttpStatusCode" value="404" type="Int32" /> 
     <regex binding="Context.Request.ServerVariables['URL']" pattern="/favicon\.ico(\z|\?)" /> 
    </and> 
    </test> 
</errorFilter> 

但由於某種原因,我無法理解如何處理OR條件。任何幫助都感激不盡。

回答

3

下應該做的伎倆或以其他方式讓你開始:

<errorFilter> 
    <test> 
    <and> 
     <equal binding="HttpStatusCode" value="404" type="Int32" /> 
     <or> 
     <regex binding="Context.Request.ServerVariables['URL']" 
       pattern="/favicon\.ico(\z|\?)" /> 
     <regex binding="Context.Request.ServerVariables['URL']" 
       pattern="/[1-2]\.xml(\z|\?)" /> 
     </or> 
    </and> 
    </test> 
</errorFilter> 

基本上,這裏的HTTP狀態代碼是404 or元素分組的正則表達式模式一個這樣將過濾的錯誤匹配請求URL。

+0

你好Atif,我試過了,它似乎沒有工作。我想確保我處理這個權利。這是我無法解析URL時如何拋出異常。拋出新的HttpException(404, String.Format(「無法找到路徑'{0}'的控制器,或者它沒有實現IController。」, requestContext.HttpContext.Request.Path)); – 2011-03-31 07:18:14

+0

您是否已經註冊了Elmah.ErrorFilterModule模塊,並且它在模塊部分中的所有其他ELMAH模塊之後出現? – 2011-03-31 19:01:46

+0

是的,我已經配置正確。注意到一件有趣的事情,聲明式web.config過濾不起作用,但編程部分確實起作用。我已經使用編程方法解決了這個問題,但很想聽到任何進一步的見解。如果我只是使用沒有任何OR /正則表達式條件的404塊(即阻塞所有的404),那也可以。如果我找到其他的東西,我會做一些進一步的研究並添加我的評論。 – 2011-04-04 06:06:05