Python-Log日誌

loggong模塊提供模塊級別的函數記錄日誌

日誌

日誌級別(level)
DEBUG
INFO
NOYICE
WARNING
ERROR
CRITICAL
ALTER
EMERGENCY
log的作用:
調試
瞭解軟件運行情況
分析定位問題
日誌信息:
時間
地點
level
內容

logging模塊

日誌級別可以自定義
DEBUG
INFO
NOYICE
WARNING
ERROR
CRITICAL
初始化寫日誌實例需要指定級別,只有當級別等於或高於指定級別才被‘記錄
使用方式:
直接使用logging()封裝了其它組件
logging四大組建直接定製

logging模塊級別的日誌

以下幾個函數:
logging.debug(msg,*args,**kwargs)創建一條嚴重級別爲debug的日誌記錄
logging.info(msg,*args,**kwargs)創建一條嚴重級別爲info的日誌記錄
logging.warning(msg,*args,**kwargs)創建一條嚴重級別爲warning的日誌記錄
logging.error(msg,*args,**kwargs)創建一條嚴重級別爲error的日誌記錄
logging.critical(msg,*args,**kwargs)創建一條嚴重級別爲critical的日誌記錄
logging.log(level,*args,**kwargs)創建一條嚴重級別爲level的日誌記錄
logging.basicConfig(**kwargs)對root logger進行一次性配置
logging.basicConfig(**kwargs)
只在第一次調用的時候起作用
不配置則使用默認值
輸出sys.stderr
級別warning
格式level:log_name:content

import logging
logging.basicConfig(filename='super.log',level=logging.DEBUG)
logging.debug('this is a debug')
logging.info('this is a info ')
logging.warning('this is a warning ')
logging.error('this is a error')
logging.critical('this is a critical')

#另一種寫法
logging.log(logging.DEBUG,'DEBUG')
logging.log(logging.INFO,'INFO')
logging.log(logging.WARNING,'WARNING')
logging.log(logging.ERROR,'ERROR')
logging.log(logging.CRITICAL,'CRITICAL')

super.log文件內容
DEBUG:root:this is a debug
INFO:root:this is a info
WARNING:root:this is a warning
ERROR:root:this is a error
CRITICAL:root:this is a critical
DEBUG:root:DEBUG
INFO:root:INFO
WARNING:root:WARNING
ERROR:root:ERROR
CRITICAL:root:CRITICAL

import logging
LOG_FORMAT="%(asctime)s------%(levelname)s-------%(message)s"
logging.basicConfig(filename='super.log',level=logging.DEBUG,format=LOG_FORMAT)
logging.debug('this is a debug')
logging.info('this is a info ')
logging.warning('this is a warning ')
logging.error('this is a error')
logging.critical('this is a critical')

#另一種寫法
logging.log(logging.DEBUG,'DEBUG')
logging.log(logging.INFO,'INFO')
logging.log(logging.WARNING,'WARNING')
logging.log(logging.ERROR,'ERROR')
logging.log(logging.CRITICAL,'CRITICAL')

super.log內容
018-12-14 14:28:34,180------DEBUG-------this is a debug
2018-12-14 14:28:34,180------INFO-------this is a info
2018-12-14 14:28:34,180------WARNING-------this is a warning
2018-12-14 14:28:34,180------ERROR-------this is a error
2018-12-14 14:28:34,180------CRITICAL-------this is a critical
2018-12-14 14:28:34,180------DEBUG-------DEBUG
2018-12-14 14:28:34,180------INFO-------INFO
2018-12-14 14:28:34,180------WARNING-------WARNING
2018-12-14 14:28:34,180------ERROR-------ERROR
2018-12-14 14:28:34,180------CRITICAL-------CRITICAL

logging模塊的處理流程

日誌四大組件
-日誌器Logger:產生日誌的一個接口
-處理器Handler:把產生的日誌發送到相應的目的地
-過濾器Filter:更精細的控制日誌輸出
-格式器Formatter:對輸出信息進行格式化

日誌器Logger

Logger.setLevel()-設置日誌器將會處理日誌消息的最低嚴重級別
Logger.addHandler() 和 Logger.removeHandler()-爲logger對象添加和移除一個處理器
Logger.addFilter()–爲logger對象添加和移除一個過濾器
Logger.debug-產生一條debug級別的日誌
Logger.exception()-創建類似於logger.error的日誌消息
Logger.loge()-獲取一個明確的日誌level參數類創建一個日誌記錄
獲取一個logger對象
logging.getLogger()

處理器Handler

方法
setLevel
setFormat
addFilter,removeFilter
不需要直接使用
logging.StreamHandler-將日誌消息發送到輸出到stream
logging.FileHandler-將日誌消息發送到磁盤文件
logging.NullHandler-該handler實例會忽略error messages
logging.handlers.HTTPHandler-以get或post方式發送到一個http服務器
logging.handlers.SMTPHandler-發送到一個指定的email地址
logging.handlers.RotatingFileHandler-發送到磁盤文件,支持文件按大小切割
logging.handlers.TimedRotatingFileHandler-發送到磁盤文件,支持文件按時間切割
Format類
三個參數
fmt
datefmt
style

過濾器Filter

可以被handler和logger使用

格式器Formatter

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章