2009-08-07 4 views
5

하나의 값이나 다른 값이 일치하면 중성 필터 (예 : 체인의 다음 필터로 전달)와 같은 필터를 만들 수 있습니까? 뭔가 같은 :Log4Net 필터 "OR"

<filter type="log4net.Filter.PropertyFilter"> 
    <Key value="myProperty" /> 
    <StringsToMatch Operator="OR"> 
     <Match>value1</Match> 
     <Match>value2</Match> 
    </StringsToMatch> 
</filter> 

나는 진짜로 내 자신의 필터를 쓰고 싶지 않아요 및 일반 Log4Net 필터와 함께 이것을 달성하기를 선호합니다. 이것이 가능한가?

답변

4

FilterSkeleton의 하위 클래스로 직접 필터를 개발할 수 있습니다.

그러나 이와 같은 특수 필터를 만드는 대신 필터 컬렉션을 포함하도록 연산자를 적용하고 그 위에 연산자를 적용하는보다 일반적인 필터를 구현하는 것이 좋습니다. 당신은 내가 log4net 프로젝트에 제출하는 것이 좋습니다 이러한 필터를 만들 경우

<filter type="CompositeFilter"> 
    <operator value="Or" /> 
    <filters> 
    <filter type="log4net.Filter.PropertyFilter"> 
     <stringToMatch value="value1" /> 
    </filter> 
    <filter type="log4net.Filter.PropertyFilter"> 
     <stringToMatch value="value2" /> 
    </filter> 
    </filters> 
</filter> 

다음 설정은 다음과 같을 수 있습니다. 그것은 확실히 일반 대중에게 유용 할 것입니다.

+2

그래, 나는 다른 누군가가 이미 이것을하기를 바랐다. 그런 성숙한 로깅 엔진이 트렁크에 이미이 기능을 가지고 있지 않다는 사실에 저는 놀랐습니다. –

+1

그리고 5 년 후에도 여전히 그렇지 않습니다! 아무도 그것을 짓는 것처럼 느껴지지 않을 것 같네요 ;-) – BatteryBackupUnit

+0

@BatteryBackupUnit - 질문 : 누구도 그것을 구현 한 적이 있습니까? :디 –