標籤:名稱 時間 error 資料 too 匯入 close root handler
用於便捷記錄日誌且安全執行緒的模組
單檔案日誌
basicConfig()模組函數
功能:建立記錄檔和寫記錄模式【有參】
使用方法:模組名稱.basicConfig(filename="記錄檔名稱",format="(日期時間),(許可權使用者),(寫入等級),(產生記錄檔名稱),(日誌內容)",datefmt="日期時間格式",level="日誌等級")
格式如:logging.basicConfig(filename=‘log.log‘,format=‘%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s‘,datefmt=‘%Y-%m-%d %H:%M:%S %p‘,level=logging.WARNING)
內建等級寫入函數【有參寫入的內容】
critical()模組函數,critical等級寫入日誌
fatal()模組函數,fatal等級寫入日誌
error()模組函數,error等級寫入日誌
warning()模組函數,warning等級寫入日誌
warn()模組函數,warn等級寫入日誌
info()模組函數,info等級寫入日誌
debug()模組函數,debug等級寫入日誌
等級對照表
CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10
#!/usr/bin/env python# -*- coding:utf8 -*-import logginglogging.basicConfig(filename=‘log.log‘, format=‘%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s‘,#(日期時間),(許可權使用者),(寫入等級),(產生記錄檔名稱),(日誌內容) datefmt=‘%Y-%m-%d %H:%M:%S %p‘,#日期時間格式 level=logging.WARNING)#日誌等級,日誌等級要求大寫# 等級對照表# CRITICAL = 50# FATAL = CRITICAL# ERROR = 40# WARNING = 30# WARN = WARNING# INFO = 20# DEBUG = 10#注意:寫入等級大於日誌等級,才寫入日誌資料# 寫入等級,寫入日誌logging.critical(‘sss‘)#寫入日誌,寫入等級要求小寫logging.fatal("333")#寫入日誌,寫入等級要求小寫logging.error("2222")#寫入日誌,寫入等級要求小寫logging.warning("5555")#寫入日誌,寫入等級要求小寫logging.warn("999")#寫入日誌,寫入等級要求小寫logging.info("598")#寫入日誌,寫入等級要求小寫logging.debug("5646")#寫入日誌,寫入等級要求小寫#log日誌寫入資料# 2016-09-06 15:10:38 PM - root - CRITICAL -index: sss# 2016-09-06 15:10:38 PM - root - CRITICAL -index: 333# 2016-09-06 15:10:38 PM - root - ERROR -index: 2222# 2016-09-06 15:10:38 PM - root - WARNING -index: 5555# 2016-09-06 15:10:38 PM - root - WARNING -index: 999#以上可以看出,寫入等級大於日誌等級,才寫入日誌資料
log()模組函數
功能:自訂寫入等級,寫入日誌【有參】
使用方法:模組名稱.log(寫入等級數,"寫入內容")
格式如:logging.log(40,‘log‘)
#!/usr/bin/env python# -*- coding:utf8 -*-import logginglogging.basicConfig(filename=‘log.log‘, format=‘%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s‘,#(日期時間),(許可權使用者),(寫入等級),(產生記錄檔名稱),(日誌內容) datefmt=‘%Y-%m-%d %H:%M:%S %p‘,#日期時間格式 level=logging.WARNING)#日誌等級,日誌等級要求大寫# 等級對照表# CRITICAL = 50# FATAL = CRITICAL# ERROR = 40# WARNING = 30# WARN = WARNING# INFO = 20# DEBUG = 10#注意:寫入等級大於日誌等級,才寫入日誌資料# 自訂寫入等級,寫入日誌logging.log(40,‘log‘)
多檔案日誌(推薦)
FileHandler()模組函數
功能:開啟或建立記錄檔【有參】
使用方法:模組名稱.FileHandler("檔案路徑名稱","開啟模式",encoding=‘字元編碼‘)
格式如:logging.FileHandler(‘l1_1.log‘, ‘a‘, encoding=‘utf-8‘)
Formatter()模組函數
功能:建立日誌寫入格式【有參】
使用方法:模組名稱.Formatter(fmt="%(日期和時間)s - %(日誌等級名稱)s - %(寫入等級名稱)s -%(產生日誌程式名稱)s: %(日誌內容)s")
格式如:logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")
setFormatter()模組函數
功能:將日誌寫入格式應用到,開啟檔案【有參】
使用方法:開啟記錄檔變數.setFormatter(建立日誌寫入格式變數)
格式如:file_1_1.setFormatter(fmt)
Logger()模組函數
功能:建立日誌等級,注意這個日誌等級可以參照等級對照表來設定,要求大寫【有參】
使用方法:模組名稱.Logger("自訂日誌等級名稱",level=日誌等級參數)
格式如:logging.Logger(‘s1‘, level=logging.ERROR)
addHandler()模組函數
功能:將日誌等級追加到開啟的檔案【有參】
使用方法:建立日誌等級變數.addHandler(開啟記錄檔變數)
格式如:logger1.addHandler(file_1_1)
close()模組函數
功能:關閉開啟的記錄檔【無參】
使用方法:開啟記錄檔變數.close()
格式如:file_1_1.close()
#!/usr/bin/env python# -*- coding:utf8 -*-import logging #匯入模組# 定義檔案1file_1_1 = logging.FileHandler(‘l1_1.log‘, ‘a‘, encoding=‘utf-8‘)#以a模式開啟或建立記錄檔fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")#建立日誌寫入格式file_1_1.setFormatter(fmt)#將日誌寫入格式應用到,開啟檔案# 定義檔案2file_1_2 = logging.FileHandler(‘l1_2.log‘, ‘a‘, encoding=‘utf-8‘)#以a模式開啟或建立記錄檔fmt = logging.Formatter(fmt="%(message)s")#建立日誌寫入格式file_1_2.setFormatter(fmt)#將日誌寫入格式應用到,開啟檔案# 定義日誌logger1 = logging.Logger(‘s1‘, level=logging.ERROR)#建立日誌等級,注意這個日誌等級可以參照等級對照表來設定,要求大寫logger1.addHandler(file_1_1)#將日誌等級追加到開啟的檔案logger1.addHandler(file_1_2)#將日誌等級追加到開啟的檔案# 寫日誌logger1.critical(‘1111‘) #寫入等級函數寫入日誌,注意這個寫入等級函數參照等級對照表來設定,要求小寫,也可以用log()模組函數來自訂等級,參照log()模組函數file_1_1.close()#關閉開啟的記錄檔file_1_2.close()#關閉開啟的記錄檔#這樣就將一個日誌資料同時寫入兩個記錄檔,注意:要將日誌資料寫入幾個記錄檔,就按照上面操作開啟幾個記錄檔
Python--logging日誌模組