logging日誌模組

2021-09-27 04:03:36 字數 1667 閱讀 5577

#分別將日誌儲存在檔案和在終端列印

# -*- coding: utf-8 -*-

"""created on mon sep 16 20:24:20 2019

@author: administrator

"""import logging

from logging import handlers

class logger(object):

level_relations = #日誌級別關係對映

def __init__(self,filename,level='info',when='d',backcount=3,fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):

self.logger = logging.getlogger(filename)

format_str = logging.formatter(fmt)#設定日誌格式

self.logger.setlevel(self.level_relations.get(level))#設定日誌級別

sh = logging.streamhandler()#往螢幕上輸出

sh.setformatter(format_str) #設定螢幕上顯示的格式

th = handlers.timedrotatingfilehandler(filename=filename,when=when,backupcount=backcount,encoding='utf-8')#往檔案裡寫入#指定間隔時間自動生成檔案的處理器

#例項化timedrotatingfilehandler

#interval是時間間隔,backupcount是備份檔案的個數,如果超過這個個數,就會自動刪除,when是間隔的時間單位,單位有以下幾種:

# s 秒

# m 分

# h 小時、

# d 天、

# w 每星期(interval==0時代表星期一)

# midnight 每天凌晨

th.setformatter(format_str)#設定檔案裡寫入的格式

self.logger.addhandler(sh) #把物件加到logger裡

self.logger.addhandler(th)

if __name__ == '__main__':

log = logger('i:',level='debug')

log.logger.debug('debug')

log.logger.info('info')

log.logger.warning('警告')

log.logger.error('報錯')

log.logger.critical('嚴重')

logger('error.log', level='error').logger.error('error')

執行結果:

all.log日誌檔案:

終端輸出:

日誌模組 logging模組

logging.debug 通常除錯時用到的日誌資訊 logging.info 證明事情按照預期的那樣工作 longging.warning 表明發生了意外,或者不就得將來發生的問題 如 磁碟滿了 軟體還是正常的工作 longging.error 由於更嚴重的問題導致軟體已經不能繼續執行某些功能 l...

logging日誌模組

日誌級別日誌輸出 將日誌輸出到控制台 log1.py 如下 import logging logging.basicconfig level logging.warning,format asctime s filename s line lineno d levelname s message s...

logging 日誌模組

什麼是日誌 無處不在的 所有的程式必須記錄日誌 給使用者看的 購物軟體 銀行卡給內部人員看的 給技術人員看的 計算器500個表示式 一些計算過程,或者是一些操作過程需要記錄下來 程式出現bug的時候,來幫助我們記錄過程 排除錯誤 給非技術人員看的 學校,公司的軟體 誰在什麼時候做了什麼事兒,刪除操作...