Python小知識,別用print打印日志,可以用logging模塊
大家在寫代碼的時候,經(jīng)常會使用print打印日志方便排查問題,然而print的問題就是太過簡單,缺少時間、日志級別等格式化信息。
Python自帶的logging模塊,很簡單就能實現(xiàn)日志的配置和打印,它有兩種用法,方法1是把日志輸出到標(biāo)準(zhǔn)輸出,其實就是命令行界面,方法2則是輸出日志到文件,更加方便。
## 方法1:配置并輸出日志到標(biāo)準(zhǔn)輸出
import loggingLOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT)logging.info("清空重建表")
當(dāng)執(zhí)行程序,就會輸出:
2021-01-24 10:43:37,883 - INFO - 清空重建表比自己用print要好用一些了。
## 方法2:配置輸出到日志文件
import loggingimport logging.handlersimport osLOG_FILE = "test_log.log"logging.basicConfig(filename=LOG_FILE,filemode="w",format="[%(levelname)s] %(asctime)s [%(filename)s:%(lineno)d, %(funcName)s] %(message)s",level=logging.INFO)time_hdls = logging.handlers.TimedRotatingFileHandler(LOG_FILE, when='D', interval=1, backupCount=7)logging.getLogger().addHandler(time_hdls)logging.info("hello world")
然后,你會發(fā)現(xiàn)有這個表現(xiàn):
1、多了一個文件,叫做test_log.log;
2、文件中是這樣的內(nèi)容,信息更加豐富:
[INFO] 2021-03-29 22:19:46,753 [testlog.py:14, <module>] hello worldhello world
3、這個日志文件,會每天備份一個文件,并且只保留7天的日志;
真正的線上服務(wù),是會這樣來配置日志的,方便、強(qiáng)大。
評論
圖片
表情
