2012-12-13 15 views
18

लॉगिंग नहीं कर रहा है मुझे पाइथन के logging lib के साथ कोई समस्या है। नीचे दिए गए कोड मैं एक "लकड़हारा" बनाने के साथ:पायथन लॉगिंग .DEBUG स्तर

logger = logging.getLogger() 
def logger_init(level): 
    try: 
     syslog = SysLogHandler(address=LOG_DESTINATION) 
    except Exception, ex: 
     return 
    formatter = logging.Formatter('%(module)s[%(process)d]: %(message)s') 
    syslog.setFormatter(formatter) 
    syslog.setLevel(level) 
    logger.addHandler(syslog) 

और मैं इसे कहते चाहते:

logger.debug (SOME_STR_TO_BE_LOGGED)

या की तरह:

logger.error (SOME_STR_TO_BE_LOGGED)

और मैं साथ लकड़हारा प्रारंभ:

log_level = logging.ERROR 
if options.DEBUG_LOG: #### This comes from options parser and it is True. 
    log_level = logging.DEBUG 
logger_init(log_level) 

समस्या यह है कि error है, और warn बहुत अच्छी तरह से काम कर रहा है, लेकिन न तो info है और न ही debug तरीकों syslog में कुछ भी प्रिंट करता है।

मैं syslog-ng का उपयोग कर रहा हूं और मैंने अपना फ़िल्टर डिज़ाइन किया है, यह debug से emerg से प्रत्येक स्तर को स्वीकार करेगा।

यहां समस्या क्या है? कोई विचार?

उत्तर

21

आपको केवल हैंडलर न केवल लॉगर का स्तर सेट करना होगा।

अपने logger_init को यह करें:

logger.setLevel(level) 
संबंधित मुद्दे