2013-02-12 94 views
2

我剛開始使用log4net,並在使用字符串進行篩選時遇到了一些問題。如何使log4net.Filter.StringMatchFilter與acceptOnMatch一起使用設置爲false

我想刪除EP4Server特定的日誌記錄在我的log4net日誌文件中,因爲我對它不感興趣。

我有一個appender以下log4net的配置:

 <filter type="log4net.Filter.LevelRangeFilter"> 
      <levelMin value="DEBUG" /> 
     </filter> 

     <filter type="log4net.Filter.StringMatchFilter"> 
      <stringToMatch value="EPiServer" /> 
      <acceptOnMatch value="false" /> 
     </filter> 
     <filter type="log4net.Filter.DenyAllFilter" /> 

我只有一個根記錄。該配置不會停止EPiServer日誌記錄。

我在做什麼錯?

回答

1

嘗試上的日誌信息,其中對記錄器的類名或部分名稱空間LoggerMatch過濾器

+0

我只用根記錄器,我想EPiServer不一樣,所以也許這就是爲什麼我不能讓這個爲我工作? – peter3 2013-02-14 09:18:47

+0

只是爲了澄清:我試圖按照建議使用過濾器,但仍然在日誌文件中顯示EpiServer條目。 – peter3 2013-02-14 11:44:18

+0

過濾器元素需要在您選擇的appender中進行,而不是在根元素內。 – tompipe 2013-02-18 09:53:02

0

您應該刪除該行的內容更改StringMatchFilter到LoggerMatchFilter

<filter type="log4net.Filter.LoggerMatchFilter"> 
    <loggerToMatch value="EPiServer" /> 
    <acceptOnMatch value="false" /> 
</filter> 

一個StringMatchFilter過濾器

<filter type="log4net.Filter.DenyAllFilter" /> 

docs

您可以將此過濾器添加到過濾器鏈的末尾,以便從 切換爲默認的「除非另行說明,否則接受全部」過濾 行爲爲「拒絕所有,除非另行指示」行爲。

有效地逆轉否認所有消息的邏輯,除非明確列入白名單使用<acceptOnMatch value="true" />一個<filter>

相關問題