日志級别 使用場景
DEBUG debug級别用來記錄詳細的資訊,友善定位問題進行調試,在生産環境我們一般不開啟DEBUG
INFO 用來記錄關鍵代碼點的資訊,以便代碼是否按照我們預期的執行,生産環境通常會設定INFO級别
WARNING 記錄某些不預期發生的情況,如磁盤不足
ERROR 由于一個更嚴重的問題導緻某些功能不能正常運作時記錄的資訊
CRITICAL 當發生嚴重錯誤,導緻應用程式不能繼續運作時記錄的資訊
logging預設隻會輸出error之後的資訊,并且隻是輸出在标準輸出流中,我真可以在BasicConfig中設定 “level” ,來講所有的等級的資訊都進行輸出,
import logging
logging.basicConfig( level=logging.DEBUG)
logging.debug("this is debug")
logging.info("this is info")
logging.error("this is error")
日志記錄到檔案
前面的日志預設會把日志輸出到标準輸出流,就是隻在指令行視窗輸出,程式重新開機後曆史日志沒地方找,是以把日志内容永久記錄是一個很常見的需求。同樣通過配置函數logging.basicConfig可以指定日志輸出到什麼地方
import logging
logging.basicConfig(filename="test.log", level=logging.INFO)
logging.debug("this is debug")
logging.info("this is info")
logging.error("this is error")
指定日志格式
預設輸出的格式包含3部分,日志級别,日志記錄器的名字,以及日志内容,中間用“:”連接配接。 如果我們想改變日志格式,例如想加入日期時間、顯示日志器名字,我們是可以指定format參數來設定日志的格式
import logging
logging.basicConfig(format='%(asctime)s %(levelname)s %(name)s %(message)s')
logging.error("this is error")

Logging.basicConfig的作用
1、建立一個root記錄器
2、設定root的日志級别為warning
3、為root記錄器添加StreamHandler處理器
4、為處理器設定一個簡單格式器
logging.basicConfig()
logging.warning("hello")
這兩行代碼其實就等價于:
import sys
import logging
from logging import StreamHandler
from logging import Formatter
logger = logging.getLogger("root")
logger.setLevel(logging.WARNING)
handler = StreamHandler(sys.stderr)
logger.addHandler(handler)
formatter = Formatter(" %(levelname)s:%(name)s:%(message)s")
handler.setFormatter(formatter)
logger.warning("hello")
logging.basicConfig 方法做的事情是相當于給日志系統做一個最基本的配置,友善開發者快速接入使用。它必須在開始記錄日志前調用。不過如果 root 記錄器已經指定有其它處理器,這時候你再調用basciConfig,則該方式将失效,它什麼都不做。