2010-11-04 15 views
13

का उपयोग करके लॉग ऑन चालू/बंद कैसे करें लॉग इननेट का उपयोग करके मैंने अपने सभी एप्लिकेशन लेनदेन को लॉग किया है। क्या लॉगिंग के लिए लिखे गए कोड को बदलने के बिना मैं किसी भी सामान्य स्थान से लॉगिंग को अक्षम और सक्षम कर सकता हूं।लॉग 4net

+0

क्या आपका मतलब app.config में है? – Mark

+0

web.config के माध्यम से – saknet

उत्तर

11

मुझे लगता है कि आप कोड के माध्यम से अपने चल रहे एप्लिकेशन में लॉगिंग टॉगल करना चाहते हैं। मैं यह कोशिश नहीं की है, लेकिन मुझे लगता है कि निम्न विधि बुला लॉगिंग अक्षम करना चाहिए:

LogManager.GetRepository().ResetConfiguration(); 

यदि आपको लॉग इन

XmlConfigurator.Configure(); 

(या XmlConfigurator के अन्य तरीकों में से एक) कहेंगे पुनः चालू करने के ।

हालांकि issue लगता है कि Configure विधि बार-बार कॉल करने के साथ। मुझे नहीं पता कि यह आपके लिए एक समस्या होगी, लेकिन कम से कम मैंने आपको चेतावनी दी है ...

+0

+1 अन्य प्रतिक्रियाओं के विपरीत, यह उन फ़ाइलों को बंद करता है जो लॉगर खुला रहता है। –

+0

इससे मेरी मदद की ... – Pritam

11

आप लॉग 4नेट कॉन्फ़िगरेशन फ़ाइल को बदलकर उन्हें बंद कर सकते हैं। विशेष रूप से एपेंडर के स्तर या वैश्विक स्तर को "बंद करें" मान में बदलें। विवरण

+0

लॉग स्तर को लॉगजर पर परिभाषित किया गया है, न कि ऐपेंडर। परिशिष्ट स्तर फिल्टर का उपयोग कर सकते हैं। यह भी हो सकता है कि रूट लॉगर का स्तर बंद हो गया है लेकिन एक बच्चा लॉगर अभी भी कुछ लॉग करता है। –

+0

हाँ, निश्चित है, लेकिन विचार अभी भी एक कॉन्फ़िगरेशन फ़ाइल के माध्यम से बना है, कोड नहीं। – Kamarey

+0

पर्याप्त मेला। यह मेरी धारणा है हालांकि यह वही नहीं है जो ओपी पूछ रहा है ... –

2

मान लिया जाये कि के लिए here देखें मैं, अपने प्रश्न समझ में पूछे जाने वाले प्रश्न से: http://logging.apache.org/log4net/release/faq.html

कैसे मैं पूरी तरह से सभी कार्यावधि में प्रवेश करने अक्षम करूं?

पदानुक्रम पर थ्रेसहोल्ड को स्तर के स्तर पर सेट करना उस पदानुक्रम से सभी लॉगिंग अक्षम कर देगा। लॉगऑनेट कॉन्फ़िगरेशन तत्व पर "ऑफ़्रेस" पर "थ्रेसहोल्ड" विशेषता सेट करके लॉग 4नेट कॉन्फ़िगरेशन फ़ाइल में किया जा सकता है। उदाहरण के लिए:

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