python日志内容存储到文件里_Python中如何实现将logging日志保存到文件中

Python中如何实现将logging日志保存到文件中

发布时间:2020-11-09 17:03:14

来源:亿速云

阅读:66

今天就跟大家聊聊有关Python中如何实现将logging日志保存到文件中,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

日志作为项目开发和运行中必备组件,python提供了内置的logging模块来完成这个工作;借助 TimedRotatingFileHandler 可以按日期自动分割日志,自动保留日志文件数量等,下面是对日志的一个简单封装和测试。

import logging

import os

from logging import handlers

class Logger(object):

# 日志级别关系映射

level_relations = {

'debug': logging.DEBUG,

'info': logging.INFO,

'warning': logging.WARNING,

'error': logging.ERROR,

'critical': logging.CRITICAL

}

def __init__(self,

filename,

level='info',

when='D',

back_count=3,

fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):

f_dir, f_name = os.path.split(filename)

os.makedirs(f_dir, exist_ok=True) # 当前目录新建log文件夹

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=back_count,

encoding='utf-8') # 往文件里写入指定间隔时间自动生成文件的Handler

# 实例化TimedRotatingFileHandler

# interval是时间间隔,backupCount是备份文件的个数,如果超过这个个数,就会自动删除,when是间隔的时间单位,单位有以下几种:

# S 秒

# M 分

# H 小时

# D 天

# 'W0'-'W6' 每星期(interval=0时代表星期一:W0)

# midnight 每天凌晨

th.setFormatter(format_str) # 设置文件里写入的格式

self.logger.addHandler(sh) # 把对象加到logger里

self.logger.addHandler(th)

# 测试

if __name__ == '__main__':

logger = Logger('./logs/2020/app.log', 'debug', 'S', 5).logger

logger.debug('debug')

logger.info('info')

logger.warning('警告')

logger.error('报错')

logger.critical('严重')

# 单独记录error

err_logger = Logger('./logs/2020/error.log', 'error', 'S', 3).logger

err_logger.error('错误 error')

619.png

为了测试方便,我们将时间间隔设为秒(按秒自动命名分割文件),多运行几次后,会按照配置文件数量将多余的日志文件自动删除,保留如上图中的日志文件。

看完上述内容,你们对Python中如何实现将logging日志保存到文件中有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值