#分別將日誌儲存在檔案和在終端列印
# -*- 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的時候,來幫助我們記錄過程 排除錯誤 給非技術人員看的 學校,公司的軟體 誰在什麼時候做了什麼事兒,刪除操作...