python logging日志打印過程解析
一、 基礎(chǔ)使用
1.1 logging使用場景
日志是什么?這個不用多解釋。百分之九十的程序都需要提供日志功能。Python內(nèi)置的logging模塊,為我們提供了現(xiàn)成的高效好用的日志解決方案。但是,不是所有的場景都需要使用logging模塊,下面是Python官方推薦的使用方法:
| 任務場景 | 最佳工具 |
|---|---|
| 普通情況下,在控制臺顯示輸出 | print() |
| 報告正常程序操作過程中發(fā)生的事件 | logging.info()(或者更詳細的logging.debug()) |
| 發(fā)出有關(guān)特定事件的警告 | warnings.warn()或者logging.warning() |
| 報告錯誤 | 彈出異常 |
| 在不引發(fā)異常的情況下報告錯誤 | logging.error(), logging.exception()或者logging.critical() |
logging模塊定義了下表所示的日志級別,按事件嚴重程度由低到高排列(注意是全部大寫!因為它們是常量。):
| 級別 | 級別數(shù)值 | 使用時機 |
|---|---|---|
| DEBUG | 10 | 詳細信息,常用于調(diào)試。 |
| INFO | 20 | 程序正常運行過程中產(chǎn)生的一些信息。 |
| WARNING | 30 | 警告用戶,雖然程序還在正常工作,但有可能發(fā)生錯誤。 |
| ERROR | 40 | 由于更嚴重的問題,程序已不能執(zhí)行一些功能了。 |
| CRITICAL | 50 | 嚴重錯誤,程序已不能繼續(xù)運行。 |
默認級別是WARNING,表示只有WARING和比WARNING更嚴重的事件才會被記錄到日志內(nèi),低級別的信息會被忽略。因此,默認情況下,DEBUG和INFO會被忽略,WARING、ERROR和CRITICAL會被記錄。
有多種方法用來處理被跟蹤的事件。最簡單的方法就是把它們打印到終端控制臺上?;蛘邔⑺鼈儗懭胍粋€磁盤文件內(nèi)。
1.2 簡單范例
在什么都不配置和設定的情況下,logging會簡單地將日志打印在顯示器上,如下例所示:
import logging
logging.warning('Watch out!') # 消息會被打印到控制臺上
logging.info('I told you so') # 這行不會被打印,因為級別低于默認級別
如果,將上面的代碼放在一個腳本里并運行,結(jié)果是:
WARNING:root:Watch out!
1.3 高級使用
import logging
#創(chuàng)建logger記錄器
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
#創(chuàng)建一個控制臺處理器,并將日志級別設置為debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
#創(chuàng)建formatter格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
#將formatter 添加到ch處理器
ch.setFormatter(formatter)
#將ch添加到logger
logger.addHandler(ch)
#然后就可以開始使用了
# logger.debug('debug message')
#logger.info('info message')
# logger.warning('warn message')
# logger.error('error message')
# logger.critical('critical message')
def Logss():
#要打印的信息
a = "3"
logger.info(a)
Logss()

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python保留格式匯總各部門excel內(nèi)容的實現(xiàn)思路
這篇文章主要介紹了python保留格式匯總各部門excel內(nèi)容,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
基于python,Matplotlib繪制函數(shù)的等高線與三維圖像
這篇文章主要介紹了基于python,Matplotlib繪制函數(shù)的等高線與三維圖像,函數(shù)的等高線及其三維圖像的可視化方法,下面一起來學習具體內(nèi)容吧,需要的小伙伴可以參考一下2022-01-01
Python實現(xiàn)連接兩個無規(guī)則列表后刪除重復元素并升序排序的方法
這篇文章主要介紹了Python實現(xiàn)連接兩個無規(guī)則列表后刪除重復元素并升序排序的方法,涉及Python針對列表的合并、遍歷、判斷、追加、排序等操作技巧,需要的朋友可以參考下2018-02-02
用python 實現(xiàn)在不確定行數(shù)情況下多行輸入方法
今天小編就為大家分享一篇用python 實現(xiàn)在不確定行數(shù)情況下多行輸入方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

