2009-08-07 14 views
5

क्या फ़िल्टर बनाना संभव है, उदाहरण के लिए एक संपत्तिफिल्टर जो तटस्थ है (और श्रृंखला में अगले फ़िल्टर में पास हो जाती है) यदि कोई या कोई अन्य मान मेल खाता है? कुछ की तरह:लॉग 4नेट फ़िल्टर "या"

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

मैं वास्तव में अपने ही फिल्टर लिखने के लिए नहीं करना चाहते हैं और सामान्य log4net फ़िल्टर के साथ यह पूरा करने के पसंद करेंगे। क्या यह संभव है?

उत्तर

4

आप निश्चित रूप से FilterSkeleton subclassing द्वारा खुद को एक फ़िल्टर विकसित कर सकते हैं।

लेकिन इस तरह एक विशेष फ़िल्टर बनाने के बजाय मैं आपको एक अधिक सामान्य फ़िल्टर लागू करने का सुझाव देता हूं जिसे फ़िल्टर का संग्रह रखने के लिए कॉन्फ़िगर किया जा सकता है और उन पर ऑपरेटर लागू कर सकता है। आप इस तरह के एक फिल्टर मैं 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> 

: config कुछ इस तरह दिखाई सकता है। यह आम जनता के लिए निश्चित रूप से उपयोगी होगा :)

+2

हाँ, मैं उम्मीद कर रहा था कि किसी और ने पहले ही यह किया है। मुझे आश्चर्य है कि इस तरह के एक परिपक्व लॉगिंग इंजन में पहले से ही ट्रंक में यह क्षमता नहीं होगी। –

+1

और पांच साल बाद भी यह नहीं है! मान लीजिए कि कोई भी ऐसा करने जैसा महसूस नहीं करता ;-) – BatteryBackupUnit

+0

@ बैटरी बैक अप यूनिट - प्रश्न यह है: क्या किसी ने कभी इसे लागू किया है? : डी –

संबंधित मुद्दे