在自動化測試中,軟件運行會出現錯誤,這時候日志就很重要了
python的logging.basicConfig函數在這里就顯得很重要了
首先我們日志需要按照info、debug、error等級別來進行區分的。當然這個級別可以自己去設置。在一般的情況下我們普通的輸出我們直接用info類型,調試的時候用debug類型,如果預計有錯誤時那么我們就需要用error類型的日志,一般情況去info級別最為合適。
logging模塊包括logger,Handler,Filter,Formatter四個部分。
- Logger 記錄器,用於設置日志采集。
- Handler 處理器,將日志記錄發送至合適的路徑。
- Filter 過濾器,提供了更好的粒度控制,它可以決定輸出哪些日志記錄。
- Formatter 格式化器,指明了最終輸出中日志的格式。
python中配置logging有三種方式
第一種:基礎配置,logging.basicConfig(filename="config.log",filemode="w",format="%(asctime)s-%(name)s-%(levelname)s-%(message)s",level=logging.INFO)。
第二種:使用配置文件的方式配置logging,使用fileConfig(filename,defaults=None,disable_existing_loggers=Ture )函數來讀取配置文件。
第三種:使用一個字典方式來寫配置信息,然后使用dictConfig(dict,defaults=None, disable_existing_loggers=Ture )函數來瓦按成logging的配置.
日志一共分成5個等級,從低到高分別是:DEBUG ,INFO ,WARNING ,ERROR, CRITICAL。
日志輸出:可以輸出在控制台和文件
logging.basicConfig函數各參數:
filename: 指定日志文件名
filemode: 和file函數意義相同,指定日志文件的打開模式,'w'或'a'
format: 指定輸出的格式和內容,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: 打印日志信息
datefmt: 指定時間格式,同time.strftime()
level: 設置日志級別,默認為logging.WARNING
stream: 指定將日志的輸出流,可以指定輸出到sys.stderr,sys.stdout或者文件,默認輸出到sys.stderr,當stream和filename同時指定時,stream被忽略