यह शांत कैसे log4net फिल्टर सभी वांछित उत्पादन प्राप्त करने के लिए जोड़ा जा सकता है है। डिफ़ॉल्ट रूप से सभी लॉग प्रविष्टियों में डिफ़ॉल्ट रूप से एक "तटस्थ" फ़िल्टर स्वभाव और log4net होता है जो तटस्थ सभी प्रविष्टियों को लॉग करता है।
क्या LevelRangeFilter
क्या करेंगे अगर प्रविष्टि के स्तर रेंज में है, यह फिल्टर स्वभाव "स्वीकार करें" सेट (या उसके स्वभाव छोड़ के रूप में यह है, तो acceptOnMatch
पैरामीटर false
पर सेट किया जाता था) और इसे जाएगा "Deny" के स्वभाव के साथ सीमा में नहीं सभी प्रविष्टियों को चिह्नित करेगा।
LevelMatchFilter
"स्वीकार" जब तक acceptToMatch
false
पर सेट है फिल्टर levelToMatch
पैरामीटर में निर्दिष्ट के लिए स्वभाव सेट हो जाएगा, तो यह प्रविष्टियों मिलान "अस्वीकार करें", बेजोड़ प्रविष्टियों कि वे क्या कर रहे थे करने के लिए छोड़ दिया जाएगा स्थापित करेगा पहले।
<appender name="FilteredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="FATAL" />
<levelMin value="ERROR" />
</filter>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="WARN" />
<acceptOnMatch value="false" />
</filter>
</appender>
यह आपको आसानी से टॉगल स्तर पर और बंद चेतावनी देने के लिए अनुमति देगा:
तो आप क्या कर सकते आप क्या चाहते हैं पाने के लिए दो फिल्टर के संयोजन का उपयोग है। सीमा के बाहर की सभी प्रविष्टियां पहले से ही "डेनी" के रूप में चिह्नित हैं और LevelMatchFilter
यहां डैन के लिए WARN स्तर प्रविष्टियों को चिह्नित करेंगे, इसलिए DenyAllFilter
आवश्यक नहीं है।
हे! त्वरित उत्तर के लिए धन्यवाद। क्या यह प्रोग्रामेटिक रूप से किया जा सकता है? मुझे केवल लॉगर (रूट) लॉग-स्तर को बदलने का एक तरीका मिला, न कि प्रत्येक परिशिष्ट '। –
क्षमा करें, मुझे आपकी टिप्पणी याद आई। प्रोग्रामिक रूप से भी संभव होना चाहिए। यहां आप देख सकते हैं कि सभी परिशिष्टों को कैसे प्राप्त करें: http://stackoverflow.com/questions/3016108/change-log4net-conversion-pattern-or-layout-at-runtime/3031867#3031867 –