2012-12-13 62 views
18

Tôi gặp sự cố với libcủa python. Với mã dưới đây, tôi tạo ra một "logger":Ghi nhật ký Python.DEBUG không ghi nhật ký

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) 

Và tôi gọi nó là thích:

logger.debug (SOME_STR_TO_BE_LOGGED)

HOẶC như:

logger.error (SOME_STR_TO_BE_LOGGED)

Và tôi khởi tạo logger với:

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) 

Vấn đề là các errorwarn đang làm việc rất tốt, nhưng không phải info cũng không debug phương pháp in bất cứ điều gì để syslog.

Tôi đang sử dụng syslog-ng và tôi đã thiết kế bộ lọc của mình, nghĩa là nó sẽ chấp nhận mọi cấp độ từ debug đến emerg.

Sự cố ở đây là gì? Bất kỳ ý tưởng?

Trả lời

21

Bạn cũng phải đặt mức độ của trình ghi nhật ký, không chỉ là trình xử lý.

Thêm phần này vào logger_init của bạn:

logger.setLevel(level)