Python--日誌模塊

# 時間 哪一個文件裏面的 第幾行代碼
import logging
from logging import handlers

# logging.debug('debug級別,最低級別,通常開發人員用來打印一些調試信息')
# logging.info('info級別,正常輸出信息,通常用來打印一些正常的操做')
# logging.warning('waring級別,通常用來打印警信息')
# logging.error('error級別,通常用來打印一些錯誤信息')
# logging.critical('critical級別,通常用來打印一些致命的錯誤信息')
# 日誌級別 debug < info < warning < error < critical
# logging.basicConfig(level=logging.ERROR,
# format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',
# filename='a.log',
# filemode='a')
# logging.debug('我是debug')
# logging.info('我是info')
# logging.warning('我是warning')
# logging.error('我是error')
# logging.critical('我是critical')

logger = logging.getLogger() # 建立一個辦公室
logger.setLevel(logging.DEBUG) # 設置日誌級別
# 一個往屏幕上輸出 StreamHandler
# 一個往文件寫東西 TimedRotatingFileHandler
fmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
st = logging.StreamHandler() # 實例化StreamHandler,至關於找一我的給你幹活,往屏幕上輸出
# 第一個參數是文件名,第二個參數when是隔多久生成一個日誌,backupCount就是保存幾個日誌文件
th = handlers.TimedRotatingFileHandler(
'my.log', when='S', encoding='utf-8', backupCount=5
) # 實例化TimedRotatingFileHandler,至關於找一我的給你幹活,往文件裏面寫東西
st.setFormatter(fmt)
th.setFormatter(fmt)
logger.addHandler(st)
logger.addHandler(th)
logger.debug('my_log debug信息')
logger.info('my_log info信息')
logger.warning('my_log warning信息')
logger.error('my_log error信息')
logger.critical('my_log critical信息')

# param when: 分割日誌的單位 S 秒、M 分、 H 小時、 D 天、 W 每星期(interval==0時表明星期一)、midnight 天天凌晨



封裝日誌
import loggingfrom logging import handlersclass Logger(object):    # 日誌級別關係映射    level_relations = {        'debug': logging.DEBUG,        'info': logging.INFO,        'warning': logging.WARNING,        'error': logging.ERROR,        'crit': logging.CRITICAL    }    def __init__(self, filename, level='info', when='D', back_count=3,                 fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):        self.logger = logging.getLogger(filename)        self.logger.setLevel(self.level_relations.get(level))  # 設置日誌級別        format_str = logging.Formatter(fmt)        sh = logging.StreamHandler()        sh.setFormatter(format_str)        th = handlers.TimedRotatingFileHandler(filename=filename, when=when,                                               backupCount=back_count, encoding='utf-8')        th.setFormatter(format_str)        self.logger.addHandler(sh)        self.logger.addHandler(th)if __name__ == '__main__':    log = Logger('nhy.log')    log.logger.debug('i的是100')    log.logger.info('開機')    log.logger.warning('警告 飛機沒油了')    log.logger.error('錯誤 飛機要爆炸')
相關文章
相關標籤/搜索