在一般情況下,日誌作用相當於print的作用,用顯示程式執行當中的一些資訊,如當前迭代次數等,但是有時候我們會讓程式在後台執行,此時print函式將失去作用,我們需要將程式執行的資訊存放在檔案中,最長見的是linux中nohup.out檔案,事後我們可以從日誌檔案中檢視程式執行的一些資訊
從低到高為:
* debug
* info
* warning
* error
* critical
當程式指定乙個日誌等級後,程式會記錄大於等於指定日誌級別的日誌資訊
longing.debug(msg, *args, **kwargs) # 建立乙個等級為debug的日誌記錄
將上面的debug替換成info, warning, error, critical就是建立一條嚴重級別為info, warning, error, critical的日誌記錄
logging.basicconfig(**kwargs) # 對日誌記錄器進行配置,如輸出日誌格式,日誌等級等資訊
1.只有級別大於等於日誌記錄器指定等級別的日誌才會被輸出
import logging
logging.debug(
"hello word, debug"
)logging.info(
"hello word, info"
)logging.error(
"hello word, error"
)logging.warning(
"hello word, warning"
)logging.critical(
"hello word, critical"
)
輸出
error:root:hello word, error
warning:root:hello word, warning
critical:root:hello word, critical
[finished in 14.5s]
可以發現前兩條日誌沒有被輸出,這是因為預設日誌記錄器設定的日誌級別為warning,因此只有大於等於warning級別的日誌被輸出
2.修改預設配置
使用basicconfig來修改預設配置,longging.basicconfig()
接收引數如下:
filename
指定寫入日誌的檔名
filemode
指定日誌檔案開啟模式,預設為「a」,就是追加模式
format
指定日誌輸出包含的資訊和順序,下面會介紹自定義格式字段
datefmt
指定日期時間格式
這裡介紹幾個經常用到的格式字串字段
%(asctime)s
日誌發生的時間
%(levelname)s
指定日誌級別
%(message)s
日誌記錄的內容
3.經過配置的日誌輸出
程式如下
import logging
log_format =
"%(asctime)s %(levelname)s %(message)s"
logging.basicconfig(filename=
'./nohup.out'
, level=logging.debug,
format
=log_format)
logging.debug(
"hello word, debug"
)logging.info(
"hello word, info"
)logging.error(
"hello word, error"
)logging.warning(
"hello word, warning"
)logging.critical(
"hello word, critical"
)
輸出:此時因為指定了輸出檔案,控制台不會顯示輸出,日誌資訊記錄在日誌檔案中,開啟nohup.out檔案其中內容如下
2020-01-10 21:32:03,006 debug hello word, debug
2020-01-10 21:32:03,006 info hello word, info
2020-01-10 21:32:03,006 error hello word, error
2020-01-10 21:32:03,006 warning hello word, warning
2020-01-10 21:32:03,006 critical hello word, critical
因為設定了日誌等級level=logging.debug,因此會將大於等於debug等級的日誌都記錄 PythonStudy 日誌模組 logging
日誌 日之石日常的流水,將程式執行過程中的狀態或資料盡心記錄,一般是記錄到日誌檔案當中的。在正常的專案之中,專案的執行的一些列印資訊,採用logging列印到檔案當中,這個過程就稱作為 日誌記錄模組 以下為預設的操作日誌模組 匯入日誌模組 import logging logging為預設列印者,是...
appium自動化測試日誌收集 logging
user bin env python coding utf 8 author cc import logging import time def output log log level 輸出日誌 log level 設定日誌級別 return 返回日誌操作物件 my logging loggin...
Python基礎之logging日誌模組封裝
使用python做自動化測試的時候,對於關鍵資訊輸出和記錄是必要的,方便除錯和記錄查詢。python有個logging模組,我們簡單對其進行封裝。話不多說,流程圖已經畫,自己領會。封裝log方法 import os import time import logging.handlers 日誌列印等級...