python logging ensure a handler is added only once

前端 未结 5 810
时光取名叫无心
时光取名叫无心 2020-12-25 09:59

I have a piece of code that is initializing a logger as below.

logger = logging.getLogger()
hdlr = logging.FileHandler(\'logfile.log\')
formatter = logging.         


        
5条回答
  •  南方客
    南方客 (楼主)
    2020-12-25 10:07

    Try checking if logger is already set. For example, if this code is inside a function:

    logger = None
    def init_logger():
        global logger
        if logger is not None:
            #logger has already been initialized
            return
        logger = logging.getLogger()
        hdlr = logging.FileHandler('logfile.log')
        formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
        hdlr.setFormatter(formatter)
        logger.addHandler(hdlr) 
        logger.setLevel(logging.DEBUG)
    

提交回复
热议问题