# -*- 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...