好程式設計師Python培訓之log日誌功能及設定方法
好程式設計師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: 列印日誌資訊
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2725237/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Python培訓分享Python程式設計師面試技巧程式設計師Python面試
- 好程式設計師Python培訓之詳解eval好與壞程式設計師Python
- 好程式設計師Python培訓分享Python系列之字串的使用程式設計師Python字串
- 好程式設計師Python培訓分享Python系列之迴圈結構程式設計師Python
- 好程式設計師Python培訓分享四款Python程式庫程式設計師Python
- 好程式設計師Python培訓分享numpy簡介程式設計師Python
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- 好程式設計師Python培訓Python如何呼叫服務介面程式設計師Python
- 好程式設計師Python培訓分享Python如何呼叫RPC介面程式設計師PythonRPC
- 好程式設計師Python培訓分享Python配置gRPC環境程式設計師PythonRPC
- 好程式設計師Python培訓分享Python異常處理程式設計師Python
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 好程式設計師Python培訓分享函式的定義與使用示例程式設計師Python函式
- 好程式設計師Python培訓分享Python程式設計中常見的異常處理程式設計師Python
- 好程式設計師Python培訓分享Python系列之分支結構程式設計師Python
- 好程式設計師Python培訓分享Python爬蟲工具列表大全程式設計師Python爬蟲
- 好程式設計師Python培訓分享Python爬蟲相關框架程式設計師Python爬蟲框架
- 好程式設計師Python培訓分享學Python要注意什麼程式設計師Python
- 好程式設計師Python培訓分享如何寫Python裝飾器程式設計師Python
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 好程式設計師Java培訓Java程式設計師必學技術程式設計師Java
- 好程式設計師Python培訓分享開發工具推薦程式設計師Python
- 好程式設計師Python培訓分享基礎入門Django程式設計師PythonDjango
- 好程式設計師Python培訓分享簡述fetchone()函式程式設計師Python函式
- 好程式設計師Python培訓分享For迴圈用法詳解程式設計師Python
- 好程式設計師Python培訓第10講:字串的使用程式設計師Python字串
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師Python培訓分享Python面試寶典之基礎篇-03程式設計師Python面試
- 好程式設計師Java培訓分享SpringBoot -YAML程式設計師JavaSpring BootYAML
- 好程式設計師Python培訓分享Python入門基礎知識程式設計師Python
- 好程式設計師Python培訓分享Python生成器與迭代器程式設計師Python
- 好程式設計師Python培訓分享Python之初識網路爬蟲程式設計師Python爬蟲
- 好程式設計師Python培訓之Django中介軟體基礎用法詳解程式設計師PythonDjango
- 參加Python培訓到底需要學什麼?好程式設計師Python程式設計師
- 好程式設計師Java培訓分享本地快取如何設計程式設計師Java快取
- 好程式設計師Python培訓分享Python中程式和執行緒詳解程式設計師Python執行緒
- 好程式設計師web前端培訓分享JavaScript學習筆記之設計模式程式設計師Web前端JavaScript筆記設計模式