python異常資訊堆疊輸出到日誌檔案

2021-09-29 02:37:32 字數 1471 閱讀 9603

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

import logging

from logging import handlers

from datetime import datetime

import time

import ccxt

import math

import pymysql

import traceback

from pprint import pprint

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)

def error_func():

b = 1 / 0

if __name__ == '__main__':

log = logger('test_log_try.log', level='debug')

try:

error_func()

except:

log.logger.error("錯誤:%s", traceback.format_exc())

python控制台資訊輸出到日誌

將python控制台資訊和錯誤資訊輸出到日誌。這裡設定輸出資料夾為log,把日誌的檔名設定為程式執行時間。首先把在 檔案中加入以下 import time import osimport sysclass logger object def init self,stream sys.stdout o...

python 輸出異常詳細資訊

在使用try except 捕獲異常後,想要獲取到異常資訊的詳細內容另做它用,可以使用python的內建模組traceback進行獲取。traceback.print exc 直接列印異常 類似於沒有通過try捕獲異常,解析器直接報錯的狀態。traceback.format exc 返回字串 將異常...

python輸出到檔案裡

傻乎乎寫了各種print,掛到伺服器上,用screen切視窗,一下子就給刷沒了,所以想著重定向到檔案裡。遇到幾個 坑 這裡當做給自己記錄 1 我想要既能重定向到檔案裡,又能輸出到螢幕上。使用了tee工具,但是沒法反應。原因是 python 中如何乙個 print 語句同時輸出到螢幕且記錄到檔案裡 p...