用於便捷記錄日誌且線程安全的模塊python
單文件日誌安全
basicConfig()模塊函數函數
功能:建立日誌文件和寫日誌模式【有參】
編碼
使用方法:模塊名稱.basicConfig(filename="日誌文件名稱",format="(日期時間),(權限用戶),(寫入等級),(產生日誌文件名稱),(日誌內容)",datefmt="日期時間格式",level="日誌等級")spa
格式如: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)線程
內置等級寫入函數【有參寫入的內容】debug
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 = 10code
#!/usr/bin/env python # -*- coding:utf8 -*- import logging 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 = 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()模塊函數orm
功能:自定義寫入等級,寫入日誌【有參】
使用方法:模塊名稱.log(寫入等級數,"寫入內容")
格式如:logging.log(40,'log')
#!/usr/bin/env python # -*- coding:utf8 -*- import logging 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 = 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 #導入模塊 # 定義文件1 file_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)#將日誌寫入格式應用到,打開文件 # 定義文件2 file_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()#關閉打開的日誌文件 #這樣就將一個日誌數據同時寫入兩個日誌文件,注意:要將日誌數據寫入幾個日誌文件,就按照上面操做打開幾個日誌文件