Python之logging模組相關介紹
python的logging模組
python提供了一個日誌處理的模組,那就是logging。
匯入logging模組使用以下命令:
import logging
logging模組的用法:
1.簡單的將日誌列印到螢幕上
import logging logging.debug("This is debug message") logging.info("This is info message") logging.warning("This is warning message") logging.error("This is error message") logging.critical("This is critical message")
會在螢幕上顯示出以下內容:
WARNING:root:This is warning message ERROR:root:This is error message CRITICAL:root:This is critical message
預設情況下python的logging模組將日誌列印到了標準輸出中,也就是螢幕上,且只顯示了大於等於WARNING級別的日誌.
這說明預設的日誌級別設定為WARNING(日誌級別等級CRITICAL > ERROR > WARNING > INFO > DEBUG)
預設直接輸出的日誌格式為日誌級別:Logger名稱:使用者:輸出訊息。
2.現在修改日誌的預設輸出級別為debug,重新設定輸出時間的格式,
import logging logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S") logging.debug("This is debug message") logging.info("This is info message") logging.warning("This is warning message") logging.error("This is error message") logging.critical("This is critical message")
會在螢幕上顯示以下資訊;
2017-07-02 10:41:18 DEBUG This is debug message 2017-07-02 10:41:18 INFO This is info message 2017-07-02 10:41:18 WARNING This is warning message 2017-07-02 10:41:18 ERROR This is error message 2017-07-02 10:41:18 CRITICAL This is critical message
相關推薦:《》
3.現在想把程式產生的日誌寫入檔案當中,可以這樣設定:
import logging logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S", filename="log.txt", filemode="w") logging.debug("This is debug message") logging.info("This is info message") logging.warning("This is warning message") logging.error("This is error message") logging.critical("This is critical message")
執行程式,會在指令碼目錄下生成一個名為log.txt的檔案。
log.txt檔案的內容如下:
2017-07-02 10:49:13 logging_modules.py[line:211] DEBUG This is debug message 2017-07-02 10:49:13 logging_modules.py[line:212] INFO This is info message 2017-07-02 10:49:13 logging_modules.py[line:213] WARNING This is warning message 2017-07-02 10:49:13 logging_modules.py[line:214] ERROR This is error message 2017-07-02 10:49:13 logging_modules.py[line:215] CRITICAL This is critical message
在這裡設定日誌檔案的輸出使用的是basicConfig這個方法:
logging.basicConfig函式各引數: filename: 指定輸出日誌的檔名 filemode: 和file函式意義相同,指定日誌檔案的開啟模式,寫入模式用'w',追加模式使用'a' 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: 列印日誌資訊 datefmt: 指定時間格式,同time.strftime() level: 設定日誌級別,預設為logging.WARNING,這裡設定為logging.DEBUG
4.既想現在就看到輸出的日誌,又想把程式執行的日誌儲存在檔案裡,方便以後檢視,可以這樣設定:
import logging logger=logging.getLogger() #建立一個file_handle變數,用於把日誌寫入到檔案 file_handle=logging.FileHandler("log1.txt") #建立一個stream_handle變數,用於輸出日誌到螢幕上 stream_handle=logging.StreamHandler() #設定輸出日誌的級別為debug級別 logger.setLevel(logging.DEBUG) #設定輸出日誌的格式 fmt=logging.Formatter("%(asctime)s-%(levelname)s-%(message)s") #為寫入檔案的日誌新增已設定的格式 file_handle.setFormatter(fmt) #為輸出到螢幕的日誌新增已設定的格式 stream_handle.setFormatter(fmt) logger.addHandler(file_handle) logger.addHandler(stream_handle) #設定輸出日誌的資訊 logging.debug("This is debug message") logging.info("This is info message") logging.warning("This is warning message") logging.error("This is error message") logging.critical("This is critical message")
執行程式後,會生成一個名為log1.txt的檔案,檔案的內容和螢幕上顯示的內容都是:
2017-07-02 11:04:53,622-DEBUG-This is debug message 2017-07-02 11:04:53,623-INFO-This is info message 2017-07-02 11:04:53,623-WARNING-This is warning message 2017-07-02 11:04:53,623-ERROR-This is error message 2017-07-02 11:04:53,624-CRITICAL-This is critical message
在這裡,還可以新增以下選項用來指定把要寫入檔案的日誌設定為debug級別,而輸出到螢幕上的日誌還是warning級別
fh.setLevel(logging.Debug)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3349/viewspace-2837309/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python之pymsql模組相關介紹PythonSQL
- Python 關於JSON模組介紹PythonJSON
- Python之set集合的相關介紹Python
- Python之函式的相關介紹Python函式
- 『無為則無心』Python日誌 — 64、Python日誌模組logging介紹Python
- python的logging模組Python
- python之logging日誌模組詳解Python
- 模組學習之logging模組
- Python logging模組的使用Python
- Python學習——logging模組Python
- python基礎之-sys模組、os模組基本介紹(未完成)Python
- python 時間相關模組Python
- python logging模組使用總結Python
- 簡單介紹python process模組Python
- python常用模組補充hashlib configparser logging,subprocess模組Python
- Python的常見模組:OS和 time模組介紹Python
- Django重要元件之Auth模組介紹Django元件
- hashlib、logging模組
- Python:使用logging模組記錄日誌Python
- Python強大的日誌模組loggingPython
- Nginx 相關介紹Nginx
- Python3 日曆(Calendar)模組介紹Python
- Python的包(package)和模組(module)介紹PythonPackage
- JavaScript 模組相關JavaScript
- 【python介面自動化】- logging日誌模組Python
- linux使用者及組相關檔案介紹Linux
- python logging模組註冊流程(以logging.config.dictConfig流程為例)Python
- 【StoneDB 模組介紹】伺服器模組伺服器
- logging模組配置筆記筆記
- camunda相關資料介紹
- RTSP 流相關工具介紹
- Drupal建站的相關介紹
- Python模組之urllib模組Python
- python模組之collections模組Python
- ModStartCMS模組開發介紹
- 3.03 模組外掛介紹
- Android模組化框架介紹Android框架
- Python 位元組碼介紹Python