2011-03-16 11 views
6

मैं अपने एप्लिकेशन में पायथन लॉगिंग लागू कर रहा हूं, और मैं "डिफ़ॉल्ट" रूट सेटिंग्स का लाभ उठाने में सक्षम होना चाहता हूं। मैं रूट सेटिंग्स का उपयोग करना चाहता हूं क्योंकि मैं कॉन्फ़िगरेशन फ़ाइल में प्रति मॉड्यूल लॉगर को परिभाषित नहीं करना चाहता हूं।किसी विशेष पैकेज के लिए लॉगिंग अक्षम करें

जब मैं रूट लॉगर के लिए DEBUG स्तर लॉगिंग चालू करता हूं, तो मैं QPID पायथन क्लाइंट API के साथ किसी समस्या में भाग ले रहा हूं। मेरे लॉग फाइल Qpid डिबग बयान के साथ बाढ़ आ गई हो:

2011-03-16 09: 16: 18,664 - qpid.messaging.io.ops - डीबग - भेजा [8de6b2c]: ..

2011- 03-16 09: 16: 18,667 - qpid.messaging.io.raw - DEBUG - ..

2011-03-16 09: 16,668 - qpid.messaging.io.raw - DEBUG - पढ़ें [8de6b2c] : ..

2011-03-16 09: 16: 18,668 - qpid.messaging.io.ops - डीबग - ..

आदि ..

तो दो मुख्य सवाल:

1) वहाँ * बस अपना मॉड्यूल के लिए लॉगिंग मॉड्यूल प्रति एक लकड़हारा को परिभाषित करने के बिना सक्षम करने के लिए कोई तरीका है? दूसरे शब्दों में साझा "लॉगर सेटिंग्स" करने का कोई तरीका है, इसलिए प्रति लॉगर के लॉगजर_ सेक्शन को परिभाषित करने के बजाय सेटिंग्स को डिफ़ॉल्ट करने का कोई तरीका है?

कुछ की तरह:

[logger_shared_settings] 
    loggers = logger_A,logger_B,logger_C,logger_D 
    level=DEBUG 

2) या कैसे मैं एक कॉन्फ़िग फ़ाइल के माध्यम से Qpid पैकेज लॉगिंग फ़िल्टर कर सकते हैं?

यहाँ log.conf फ़ाइल है:

[loggers] 
keys=root 

[handlers] 
keys=consoleHandler,fileHandler,nullHandler 

[formatters] 
keys=simpleFormatter 

[logger_root] 
level=DEBUG 
handlers=consoleHandler,fileHandler 

[handler_consoleHandler] 
class=StreamHandler 
level=DEBUG 
formatter=simpleFormatter 
args=(sys.stdout,) 

[handler_fileHandler] 
class=logging.handlers.RotatingFileHandler 
level=DEBUG 
formatter=simpleFormatter 
args=('out.log',) 

यहाँ है कि मैं क्या से बचने की कोशिश कर रहा था:

[loggers] 
keys=root, a, b, c, d 

[handlers] 
keys=consoleHandler,fileHandler,nullHandler 

[formatters] 
keys=simpleFormatter 

[logger_root] 
level=ERROR 
handlers=nullHandler 


[logger_a] 
level=DEBUG 
handlers=consoleHandler,fileHandler 


[logger_b] 
level=DEBUG 
handlers=consoleHandler,fileHandler 

[logger_c] 
level=DEBUG 
handlers=consoleHandler,fileHandler 

उत्तर

3

python2.7 आप Qpid लकड़हारा को NullHandler सेट कर सकते हैं:

[logger_qpid] 
level=NOTSET 
handlers=nullHandler 
qualname=qpid 
propagate=0 
+0

यह काम करता है, jw क्या आप साझा सेट करने के किसी भी तरीके से जानते हैं सी चीज़ें? – Nix

+0

हमम ... क्या "साझा सेटिंग्स" का मतलब है? – oxyum

+0

रूट लॉगर की तरह, लेकिन एक अलग सेक्शन जो मैं अपने आवेदन में मॉड्यूल लागू कर सकता हूं। – Nix

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