python基礎 日誌logging模組

2021-10-02 02:46:00 字數 2553 閱讀 2016

在一般情況下,日誌作用相當於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 日誌列印等級...