Метод Decide
UniqueLogFilter
не выполняется, потому что в иерархии фильтров верхний LevelRangeFilter
принимает событие, если оно соответствует его условию, вместо передачи его следующему фильтру, UniqueLogFilter
.
Чтобы принять решение UniqueFilter
, вы должны установить AcceptOnMatch
на False
для LevelRangeFilter
.
С этим параметром вы заметите, что UniqueLogFilter
выполняется во время отладки.
<acceptOnMatch>False</acceptOnMatch>
Настройка фильтра выглядит следующим образом.
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="WARN" />
<acceptOnMatch>False</acceptOnMatch>
</filter>
<filter type="CPVEmailWatcher.UniqueLogFilter">
<loggerToMatch value="RollingLogFileAppender" />
<timeWindow value="1800" />
<!--(30 min interval)-->
<lastOnly value="false" />
</filter>