轉自:https://www.cnblogs.com/jsondai/p/9663633.html
一、日志的級別
debug(調試信息) info() warning(警告信息)error(錯誤信息) critical(致命信息) 從左往右越來越嚴重
日志等級(level) | 描述 |
---|---|
DEBUG | 最詳細的日志信息,典型應用場景是 問題診斷 |
INFO | 信息詳細程度僅次於DEBUG,通常只記錄關鍵節點信息,用於確認一切都是按照我們預期的那樣進行工作 |
WARNING | 當某些不期望的事情發生時記錄的信息(如,磁盤可用空間較低),但是此時應用程序還是正常運行的 |
ERROR | 由於一個更嚴重的問題導致某些功能不能正常運行時記錄的信息 |
CRITICAL | 當發生嚴重錯誤,導致應用程序不能繼續運行時記錄的信息 |
注意,系統只顯示warning(警告信息)級別以上的日志,例如我們輸入一下代碼:
import logging logging.debug('這是個debug級別的信息')#輸出時被過濾掉了 logging.info('這是個info級別的信息')#輸出時被過濾掉了 logging.warning('這是個warning級別的信息') logging.error('這是個error級別的信息') logging.critical('這是個critical級別的信息')
控制台輸出
代碼寫的是5行數據,實際在控制台只有3行,那是因為系統默認輸出 warning(警告)及以上的日志。
如果需要全部展示,需要調用
logging.basicConfig(level=logging.DEBUG) #basicConfig基礎配置 可以輸入關鍵字參數,level是等級的意思 logging.DEBUG級別必須大寫 如果是調用函數就需要小寫
在level那里展示指定級別。 加上 logging.basicConfig 之后運行,結果如下,能全部展示出來了
二、日志格式化輸出
將日志輸出到控制台或者文件中
fp = logging.FileHandler('a.txt', encoding='utf-8') #將日志記錄到文件中 fs = logging.StreamHandler() #將日志輸出到控制台
放在handler中進行調用
import logging LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s" # 日志格式化輸出 DATE_FORMAT = "%m/%d/%Y %H:%M:%S %p" # 日期格式 fp = logging.FileHandler('a.txt', encoding='utf-8') fs = logging.StreamHandler() logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT, handlers=[fp, fs]) # 調用 logging.debug("This is a debug log.哈哈") logging.info("This is a info log.") logging.warning("This is a warning log.") logging.error("This is a error log.") logging.critical("This is a critical log.")
控制台和文件中就都能展示日志了