第四十五節,logging日誌模塊

用於便捷記錄日誌且線程安全的模塊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()#關閉打開的日誌文件
#這樣就將一個日誌數據同時寫入兩個日誌文件,注意:要將日誌數據寫入幾個日誌文件,就按照上面操做打開幾個日誌文件
相關文章
相關標籤/搜索