下面的代碼是python logging的一個hello world 程序:python
import logging函數
def init_log(logfile):spa
logger = logging.getLogger()日誌
hdlr = logging.FileHandler(logfile)orm
formatter = logging.Formatter('%(asctime)s %(levelname)s - %(message)s')開發
hdlr.setFormatter(formatter)get
logger.handlers = []it
logger.addHandler(hdlr)form
logger.setLevel(logging.INFO)test
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,若是不須要能夠把它先清空