小记】创建一个可以调用的日志脚本"/>
【python路上小记】创建一个可以调用的日志脚本
使用logging模块
import logging
logpath = '/user/project/log'
class Logger(object):# 日志级别关系映射level_relations = {'debug': logging.DEBUG,'info': logging.INFO,'warning': logging.WARNING,'error': logging.ERROR,'crit': logging.CRITICAL}def __init__(self, file_name='log.txt', level='info',fmt='%(asctime)s - %(levelname)s - %(module)s - %(funcName)s: %(message)s'):self.path = '%s/%s' % (logpath, file_name)self.logger = logging.getLogger(self.path)if not self.logger.handlers:format_str = logging.Formatter(fmt) # 设置日志格式self.logger.setLevel(self.level_relations.get(level)) # 设置日志级别# sh = logging.StreamHandler()#往屏幕上输出# sh.setFormatter(format_str) #设置屏幕上显示的格式th = logging.FileHandler(filename=self.path, mode='a', 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)# 关闭打开的文件th.close()
调用
Logger().logger.error(re, (abcd,efgh))
# 调用时可以重写目标文件的名字,以区分每个需求
Logger('log.txt').logger.error(re, (abcd,efgh))
更多推荐
【python路上小记】创建一个可以调用的日志脚本
发布评论