LOG日志系统

# coding=utf-8
import datetime
import logging
import os
import sys
from logging.handlers import TimedRotatingFileHandler


class Logger(object):
    level_relations = {
        'debug': logging.DEBUG,
        'info': logging.INFO,
        'warning': logging.WARNING,
        'error': logging.ERROR,
        'critical': logging.CRITICAL
    }

    def __init__(self, name=None, date=None, filename=None, level='info', fmt='%(asctime)s [module:%(name)s][line:%(lineno)d] - %(levelname)s: %(message)s'):
        self.level = self.level_relations.get(level)
        fmt = logging.Formatter(fmt)
        path = './log'
        if not os.path.exists(path):
            os.makedirs(path)
        filename = path + '/record'
        self.logger = logging.getLogger(name)
        self.logger.setLevel(self.level)
        sh = logging.StreamHandler(sys.stdout)
        sh.setFormatter(fmt)
        sh.setLevel(self.level)

        # fh = logging.FileHandler(filename)
        # fh.setFormatter(fmt)
        # fh.setLevel(logging.INFO)

        fh = TimedRotatingFileHandler(filename, when="MIDNIGHT", backupCount=0)
        fh.setFormatter(fmt)
        fh.setLevel(logging.DEBUG)

        # self.logger.addHandler(sh)
        self.logger.addHandler(fh)

  

使用方法:

logging = Logger('arbitrager', level='info', date=datetime.date.today()).logger

 输出效果

2018-12-21 14:41:58,072 [module:arbitrager][line:106] - INFO: 余额:{'RMB': 0, 'BTC': 8.54261856644365, 'ETH': 0.0472080574819629, 'USDT': 47.34626115212543,}
2018-12-21 14:57:40,146 [module:arbitrager][line:106] - INFO: 余额:{'RMB': 0, 'BTC': 8.54261856644365, 'ETH': 0.0472080574819629, 'USDT': 47.34626115212543,}
2018-12-21 14:58:22,290 [module:arbitrager][line:106] - INFO: 余额:{'RMB': 0, 'BTC': 8.54261856644365, 'ETH': 0.0472080574819629, 'USDT': 47.34626115212543,}
2018-12-21 14:58:51,587 [module:arbitrager][line:106] - INFO: 余额:{'RMB': 0, 'BTC': 8.54261856644365, 'ETH': 0.0472080574819629, 'USDT': 47.34626115212543,}
2018-12-21 15:06:57,794 [module:arbitrager][line:106] - INFO: 余额:{'RMB': 0, 'BTC': 8.54261856644365, 'ETH': 0.0472080574819629, 'USDT': 47.34626115212543, }

  

原文地址:https://www.cnblogs.com/Dreamxin/p/10243835.html