python的logging模块

下面的代码是python logging的一个hello world 程序:

import logging

def init_log(logfile):

    logger = logging.getLogger()

    hdlr = logging.FileHandler(logfile)

    formatter = logging.Formatter('%(asctime)s %(levelname)s - %(message)s')

    hdlr.setFormatter(formatter)

    logger.handlers = []

    logger.addHandler(hdlr)

    logger.setLevel(logging.INFO)

    

    return logger

def main():

    init_log("/tmp/testlog.log")

    logging.info("TEST....")

    

main()

代码就不解释了啊,比较简单。

对于logging level 和handler可以见:

这里有个注意的地方:

这句:

logger = logging.getLogger()如果指定logger的name:getLogger("mylogger")这样在以后使用必须先要使用getLogger获得这个logger,如果不知定name,将把默认的logger配置改变,这样是很有用的:

在执行了init_log函数之后,只要再import logging,执行logging.info("test..")也会根据同样的配置输出日志的。在多模块的开发中是非常方便的

logger.handlers = []这句是为了清除原来默认的handler,默认会有一个streaming的handler,如果不需要可以把它先清空


你可能感兴趣的:(python的logging模块)