2013-05-17 6 views
12

अक्सर मैं एक विशिष्ट चैट लॉगर से एक निश्चित स्तर तक लॉगिंग को बाहर करना चाहता हूं। दुर्भाग्य से, निम्नलिखित नियमों का पहला, कि लकड़हारा के सभी स्तरों के लिए अंतिम है दूसरा नियम (जो केवल मेरा डिफ़ॉल्ट नियम है) यह से कुछ भी लॉग नहीं करेगा ताकि:एनएलओजी और अंतिम नियम

<logger name="ChattyLogger" maxlevel="Warn" writeTo="blackhole" final="true" /> 

<logger name="*" minlevel="Info" writeTo="default" /> 

एक संभावना यह फिल्टर का उपयोग करने के लिए है बजाय:

<logger name="ChattyLogger" writeTo="blackhole"> 
    <filters> 
    <when condition="level&lt;=LogLevel.Warn" action="IgnoreFinal" /> 
    </filters> 
</logger> 

<logger name="*" minlevel="Info" writeTo="default" /> 

लेकिन वाक्य रचना बदसूरत, विशेष रूप से लंबाई और हालत अभिव्यक्ति से बचने के लिए की जरूरत है।

चूंकि यह ऐसी सामान्य आवश्यकता की तरह लगता है, इसलिए मुझे आश्चर्य है कि मैंने कुछ अनदेखा किया है या नहीं।

मैं सिल्वरलाइट के तहत नलॉग का उपयोग कर रहा हूं, लेकिन मुझे लगता है कि इससे कोई फर्क नहीं पड़ता।

उत्तर

7

इस प्रयास करें:

<logger name="ChattyLogger" maxlevel="Warn"/> 
<logger name="ChattyLogger" minlevel="Error" final="true" writeTo="default"/> 
<logger name="*" minlevel="Info" writeTo="default" /> 
+0

महान जवाब है, लेकिन निश्चित रूप से पहली पंक्ति कुछ नहीं करता है, और हटाया जा सकता है? –

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