python的日志文件按天分割

前言

在服务器的使用过程中,我经常会有长时间运行的服务,那么为了方便我们查看日志,所以会产生每天都能新建一个新的日志文件的需求,其实这个问题很简单,只需要使用python的logging库的handlers模块的TimedRotatingFileHandler类即可

正文

话不多说,上代码,边看代码边解释

# #coding=utf-8
import logging,os  # 引入logging模块
from com_tools import setting


from logging import handlers

class Logger(object):
    level_relations = {
        'debug':logging.DEBUG,
        'info':logging.INFO,
        'warning':logging.WARNING,
        'error':logging.ERROR,
        'crit':logging.CRITICAL
    }#日志级别关系映射


    def __init__(self,filename,level='info',when='MIDNIGHT',backCount=7,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,interval=1,when=when,backupCount=backCount,encoding='utf-8')#往文件里写入#指定间隔时间自动生成文件的处理器
        #实例化TimedRotatingFileHandler
        #interval是时间间隔,backupCount是备份文件的个数,如果超过这个个数,就会自动删除,when是间隔的时间单位,单位有以下几种:
        # S 秒
        # M 分
        # H 小时、
        # D 天、
        # W 每星期(interval==0时代表星期一)
        # midnight 每天凌晨
        th.suffix = "%Y-%m-%d.log" #设置文件后缀
        th.setFormatter(format_str)#设置文件里写入的格式
        self.logger.addHandler(sh) #把对象加到logger里
        self.logger.addHandler(th)
logfile = os.path.join(setting.logs_path, "daodianmockapi.txt") # 这个文件的名称就是当天的日志文件,过往的日志文件,会在后面追加文件后缀 th.suffix
logger = Logger(logfile,level='debug')

if __name__ == '__main__':
    #logger = Logger('all.log',level='debug')
    # filename = setting.now_time+ ".txt"
    # logfile = os.path.join(setting.logs_path,filename)
    # logger = Logger(logfile,level='debug')
    logger.logger.debug('debug') # 括号内的内容即为日志的文本内容
    logger.logger.info('info')
    logger.logger.warning('警告')
    logger.logger.error('报错')
    logger.logger.critical('严重')
    #Logger('error.log', level='error').logger.error('error')

日志分解分割效果
在这里插入图片描述

尾言

整个flask框架写mock接口就到这里结束了,后面应该是写Django的学习了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值