好程序員Python培訓分享log日誌功能及設置方法的詳細介紹,首先引入Python中有個logging模塊可以完成相關信息的記錄,在debug使用它往往事半功倍,下面一起跟隨小編過來看看吧。
一、日誌級別(從低到高):
DEBUG:詳細的信息,通常只出現在診斷問題上
INFO:確認一切按預期運行
WARNING:一個跡象表明,一些意想不到的事情發生了,或表明一些問題在不久的將來(例如。磁盤空間低”)。這個軟件還能按預期工作。
ERROR:更嚴重的問題,軟件沒能執行一些功能
CRITICAL:一個嚴重的錯誤,這表明程序本身可能無法繼續運行
注:這5個等級,也分別對應5種打日誌的方法:debug、info、warning、error、critical。默認的是WARNING,當在WARNING或之上時才被跟蹤。
二、日誌輸出:顯示到控制檯或保存到文件中,可以靈活選用
# 這裡為了簡便,同時處理:輸出控制檯和保存到文件中
import logging
# 第一步,創建一個logger
logger = logging.getLogger()
logger.setLevel(logging.INFO) # Log等級總開關
# 第二步,創建一個handler,用於寫入日誌文件
logfile = './log.txt'
fh = logging.FileHandler(logfile, mode='a') # open的打開模式這裡可以進行參考
fh.setLevel(logging.DEBUG) # 輸出到file的log等級的開關
# 第三步,再創建一個handler,用於輸出到控制檯
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING) # 輸出到console的log等級的開關
# 第四步,定義handler的輸出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 第五步,將logger添加到handler裡面
logger.addHandler(fh)
logger.addHandler(ch)
# 日誌
logger.debug('這是 logger debug message')
logger.info('這是 logger info message')
logger.warning('這是 logger warning message')
logger.error('這是 logger error message')
logger.critical('這是 logger critical message')
三、日誌格式說明
logging.basicConfig函數中,可以指定日誌的輸出格式format,這個參數可以輸出很多有用的信息,如下:
%(levelno)s:打印日誌級別的數值
%(levelname)s:打印日誌級別名稱
%(pathname)s:打印當前執行程序的路徑,其實就是sys.argv[0]
%(filename)s:打印當前執行程序名
%(funcName)s:打印日誌的當前函數
%(lineno)d:打印日誌的當前行號
%(asctime)s:打印日誌的時間
%(thread)d:打印線程ID
%(threadName)s:打印線程名稱
%(process)d:打印進程ID
%(message)s:打印日誌信息
閱讀更多 好程序員 的文章