Python的log日志功能及設(shè)置方法
引入:Python中有個(gè)logging模塊可以完成相關(guān)信息的記錄,在debug時(shí)用它往往事半功倍
一、日志級(jí)別(從低到高):
DEBUG :詳細(xì)的信息,通常只出現(xiàn)在診斷問題上
INFO:確認(rèn)一切按預(yù)期運(yùn)行
WARNING:一個(gè)跡象表明,一些意想不到的事情發(fā)生了,或表明一些問題在不久的將來(例如。磁盤空間低”)。這個(gè)軟件還能按預(yù)期工作。
ERROR:更嚴(yán)重的問題,軟件沒能執(zhí)行一些功能
CRITICAL :一個(gè)嚴(yán)重的錯(cuò)誤,這表明程序本身可能無法繼續(xù)運(yùn)行
注:這5個(gè)等級(jí),也分別對(duì)應(yīng)5種打日志的方法: debug 、info 、warning 、error 、critical。默認(rèn)的是WARNING,當(dāng)在WARNING或之上時(shí)才被跟蹤。
二、日志輸出:顯示到控制臺(tái)或保存到文件中,可以靈活選用
# 這里為了簡(jiǎn)便,同時(shí)處理:輸出控制臺(tái)和保存到文件中 import logging # 第一步,創(chuàng)建一個(gè)logger logger = logging.getLogger() logger.setLevel(logging.INFO) # Log等級(jí)總開關(guān) # 第二步,創(chuàng)建一個(gè)handler,用于寫入日志文件 logfile = './log.txt' fh = logging.FileHandler(logfile, mode='a') # open的打開模式這里可以進(jìn)行參考 fh.setLevel(logging.DEBUG) # 輸出到file的log等級(jí)的開關(guān) # 第三步,再創(chuàng)建一個(gè)handler,用于輸出到控制臺(tái) ch = logging.StreamHandler() ch.setLevel(logging.WARNING) # 輸出到console的log等級(jí)的開關(guān) # 第四步,定義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函數(shù)中,可以指定日志的輸出格式format,這個(gè)參數(shù)可以輸出很多有用的信息,如下:
%(levelno)s: 打印日志級(jí)別的數(shù)值
%(levelname)s: 打印日志級(jí)別名稱
%(pathname)s: 打印當(dāng)前執(zhí)行程序的路徑,其實(shí)就是sys.argv[0]
%(filename)s: 打印當(dāng)前執(zhí)行程序名
%(funcName)s: 打印日志的當(dāng)前函數(shù)
%(lineno)d: 打印日志的當(dāng)前行號(hào)
%(asctime)s: 打印日志的時(shí)間
%(thread)d: 打印線程ID
%(threadName)s: 打印線程名稱
%(process)d: 打印進(jìn)程ID
%(message)s: 打印日志信息
以上這篇Python的log日志功能及設(shè)置方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python使用PIL和matplotlib獲取圖片像素點(diǎn)并合并解析
這篇文章主要介紹了python使用PIL和matplotlib獲取圖片像素點(diǎn)并合并解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09解決import tensorflow導(dǎo)致jupyter內(nèi)核死亡的問題
這篇文章主要介紹了解決import tensorflow導(dǎo)致jupyter內(nèi)核死亡的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02最近Python有點(diǎn)火? 給你7個(gè)學(xué)習(xí)它的理由!
最近Python有點(diǎn)火?這篇文章主要為大家分享了7個(gè)你現(xiàn)在就該學(xué)習(xí)Python的理由,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Python中的引用知識(shí)點(diǎn)總結(jié)
在本文里我們給大家整理了關(guān)于Python中的引用知識(shí)點(diǎn)以及相關(guān)代碼總結(jié),需要的朋友們跟著學(xué)習(xí)下。2019-05-05Python獲取電腦硬件信息及狀態(tài)的實(shí)現(xiàn)方法
這篇文章主要介紹了Python獲取電腦硬件信息及狀態(tài)的實(shí)現(xiàn)方法,是一個(gè)很實(shí)用的技巧,需要的朋友可以參考下2014-08-08python游戲開發(fā)之視頻轉(zhuǎn)彩色字符動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了python游戲開發(fā)之視頻轉(zhuǎn)彩色字符動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04python實(shí)現(xiàn)從文件中讀取數(shù)據(jù)并繪制成 x y 軸圖形的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)從文件中讀取數(shù)據(jù)并繪制成 x y 軸圖形的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10