python日志記錄

1. 等級

日志等級(level) 描述
DEBUG 最詳細(xì)的日志信息槽地,典型應(yīng)用場景是 問題診斷
INFO 信息詳細(xì)程度僅次于DEBUG岳遥,通常只記錄關(guān)鍵節(jié)點信息走净,用于確認(rèn)一切都是按照我們預(yù)期的那樣進(jìn)行工作
WARNING 當(dāng)某些不期望的事情發(fā)生時記錄的信息(如,磁盤可用空間較低)舟肉,但是此時應(yīng)用程序還是正常運(yùn)行的
ERROR 由于一個更嚴(yán)重的問題導(dǎo)致某些功能不能正常運(yùn)行時記錄的信息
CRITICAL 當(dāng)發(fā)生嚴(yán)重錯誤厉碟,導(dǎo)致應(yīng)用程序不能繼續(xù)運(yùn)行時記錄的信息
  • 日志等級是從上到下依次升高的,即:DEBUG < INFO < WARNING < ERROR < CRITICAL卖词,而日志的信息量是依次減少的
  • 當(dāng)指定日志級別后巩那,應(yīng)用程序會記錄所有日志級別大于或等于指定日志級別的日志信息

2. 記錄格式

  • 事件發(fā)生時間
  • 事件發(fā)生位置
  • 事件的嚴(yán)重程度--日志級別
  • 事件內(nèi)容

3. logging模塊

常用logging模塊用以記錄日志

函數(shù) 說明
logging.debug(msg, *args, **kwargs) 創(chuàng)建一條嚴(yán)重級別為DEBUG的日志記錄
logging.info(msg, *args, **kwargs) 創(chuàng)建一條嚴(yán)重級別為INFO的日志記錄
logging.warning(msg, *args, **kwargs) 創(chuàng)建一條嚴(yán)重級別為WARNING的日志記錄
logging.error(msg, *args, **kwargs) 創(chuàng)建一條嚴(yán)重級別為ERROR的日志記錄
logging.critical(msg, *args, **kwargs) 創(chuàng)建一條嚴(yán)重級別為CRITICAL的日志記錄
logging.log(level, *args, **kwargs) 創(chuàng)建一條嚴(yán)重級別為level的日志記錄
logging.basicConfig(**kwargs) 對root logger進(jìn)行一次性配置

I. logging.basicConfig()函數(shù)說明

該方法用于為logging日志系統(tǒng)做一些基本配置

logging.basicConfig(**kwargs)

  • logging.basicConfig()函數(shù)是一個一次性的簡單配置工具使,也就是說只有在第一次調(diào)用該函數(shù)時會起作用此蜈,后續(xù)再次調(diào)用該函數(shù)時完全不會產(chǎn)生任何操作的即横。
參數(shù)名稱 描述
filename 指定日志輸出目標(biāo)文件的文件名,指定該設(shè)置項后日志信心就不會被輸出到控制臺了
filemode 指定日志文件的打開模式裆赵,默認(rèn)為'a'东囚。需要注意的是,該選項要在filename指定時才有效
format 指定日志格式字符串战授,即指定日志輸出時所包含的字段信息以及它們的順序页藻。logging模塊定義的格式字段下面會列出。
datefmt 指定日期/時間格式植兰。需要注意的是份帐,該選項要在format中包含時間字段%(asctime)s時才有效
level 指定日志器的日志級別
stream 指定日志輸出目標(biāo)stream,如sys.stdout楣导、sys.stderr以及網(wǎng)絡(luò)stream废境。需要說明的是,stream和filename不能同時提供筒繁,否則會引發(fā) ValueError異常
style Python 3.2中新添加的配置項噩凹。指定format格式字符串的風(fēng)格,可取值為'%'毡咏、'{'和'$'驮宴,默認(rèn)為'%'
handlers Python 3.3中新添加的配置項。該選項如果被指定呕缭,它應(yīng)該是一個創(chuàng)建了多個Handler的可迭代對象堵泽,這些handler將會被添加到root logger修己。需要說明的是:filename、stream和handlers這三個配置項只能有一個存在迎罗,不能同時出現(xiàn)2個或3個箩退,否則會引發(fā)ValueError異常。

II. logging模塊定義的格式字符串字段

字段/屬性名稱 使用格式 描述
asctime %(asctime)s 日志事件發(fā)生的時間--人類可讀時間佳谦,如:2003-07-08 16:49:45,896
created %(created)f 日志事件發(fā)生的時間--時間戳,就是當(dāng)時調(diào)用time.time()函數(shù)返回的值
relativeCreated %(relativeCreated)d 日志事件發(fā)生的時間相對于logging模塊加載時間的相對毫秒數(shù)(目前還不知道干嘛用的)
msecs %(msecs)d 日志事件發(fā)生事件的毫秒部分
levelname %(levelname)s 該日志記錄的文字形式的日志級別('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL')
levelno %(levelno)s 該日志記錄的數(shù)字形式的日志級別(10, 20, 30, 40, 50)
name %(name)s 所使用的日志器名稱滋戳,默認(rèn)是'root'钻蔑,因為默認(rèn)使用的是 rootLogger
message %(message)s 日志記錄的文本內(nèi)容,通過 msg % args計算得到的
pathname %(pathname)s 調(diào)用日志記錄函數(shù)的源碼文件的全路徑
filename %(filename)s pathname的文件名部分奸鸯,包含文件后綴
module %(module)s filename的名稱部分咪笑,不包含后綴
lineno %(lineno)d 調(diào)用日志記錄函數(shù)的源代碼所在的行號
funcName %(funcName)s 調(diào)用日志記錄函數(shù)的函數(shù)名
process %(process)d 進(jìn)程ID
processName %(processName)s 進(jìn)程名稱,Python 3.1新增
thread %(thread)d 線程ID
threadName %(thread)s 線程名稱

4. 使用示例

    def __init__(self, filename):
        self.filename = filename
        self.log_filename = 'logs/' + self.filename
        logging.basicConfig(filename=self.log_filename + '.txt', filemode='a+',
                            level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s "
                            , datefmt="%m/%d/%Y %H:%M:%S %p")
        logging.info("FILENAME:%s " % self.filename)
        logging.info("*********************************************")
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娄涩,一起剝皮案震驚了整個濱河市窗怒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蓄拣,老刑警劉巖扬虚,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異球恤,居然都是意外死亡辜昵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門咽斧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堪置,“玉大人,你說我怎么就攤上這事张惹∫ㄏ牵” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵宛逗,是天一觀的道長坎匿。 經(jīng)常有香客問我,道長拧额,這世上最難降的妖魔是什么们何? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮柠贤,結(jié)果婚禮上克胳,老公的妹妹穿的比我還像新娘。我一直安慰自己恭垦,他們只是感情好快毛,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布格嗅。 她就那樣靜靜地躺著,像睡著了一般唠帝。 火紅的嫁衣襯著肌膚如雪屯掖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天襟衰,我揣著相機(jī)與錄音贴铜,去河邊找鬼。 笑死瀑晒,一個胖子當(dāng)著我的面吹牛绍坝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苔悦,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼轩褐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了玖详?” 一聲冷哼從身側(cè)響起把介,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蟋座,沒想到半個月后拗踢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜈七,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年秒拔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片飒硅。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡砂缩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出三娩,到底是詐尸還是另有隱情庵芭,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布雀监,位于F島的核電站双吆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏会前。R本人自食惡果不足惜好乐,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓦宜。 院中可真熱鬧蔚万,春花似錦、人聲如沸临庇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淮蜈,卻和暖如春斋攀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背梧田。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工淳蔼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人裁眯。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓肖方,卻偏偏與公主長得像,于是被迫代替她去往敵國和親未状。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容