Python logging日志库空间不足问题解决


Posted in Python onSeptember 14, 2020

项目中使用的日志库是使用python官方库logging封装的,但是居然一直么有设置日志自动滚动,经常会受到告警说哪台机器磁盘空间又满,清理一下,于是研究一下,解决这个问题。

参考:https://docs.python.org/2/library/logging.handlers.html

TimedRotatingFileHandler有三个参数很关键

when、interval、backupCount

when指定滚动依据的单位,可选的有天、小时、分钟、秒等;interval指定间隔多少个when之后滚动日志;而backupCount指定最多保留多少个日志。

所以结合这三个参数就可以实现我要的目的了,让日志随时间滚动,同时限制总的日志个数。

Python logging日志库空间不足问题解决

demo:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import os
import time
import logging
import logging.handlers

if __name__ == '__main__':
  if len(sys.argv) != 2:
    print('Usage:%s log_name' % (sys.argv[0]))
    sys.exit(0)

  log_dir = './log'
  log_name = sys.argv[1]
  logger = logging.getLogger(log_name)
  logger.setLevel(logging.DEBUG)

  # init handler
  formatter = logging.Formatter('%(message)s')
  file_time_handler = logging.handlers.TimedRotatingFileHandler(
      os.path.join(log_dir, log_name), "M", 1, 5)
  file_time_handler.setFormatter(formatter)
  file_time_handler.setLevel(logging.DEBUG)
  logger.addHandler(file_time_handler)

  while True:
    time.sleep(1)
    logger.info('Hello world %s' % (time.strftime("%Y/%M/%d-%H:%m:%S")))

结果:

Python logging日志库空间不足问题解决

可以看到最上面的一条记录记录就被滚掉了。

666

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
编程语言Python的发展史
Sep 26 Python
Python实现字符串匹配算法代码示例
Dec 05 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
一篇文章了解Python中常见的序列化操作
Jun 20 Python
python 画二维、三维点之间的线段实现方法
Jul 07 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
keras处理欠拟合和过拟合的实例讲解
May 25 Python
Python smtp邮件发送模块用法教程
Jun 15 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
Python grpc超时机制代码示例
Sep 14 #Python
python/golang 删除链表中的元素
Sep 14 #Python
Python基于pillow库实现生成图片水印
Sep 14 #Python
python/golang实现循环链表的示例代码
Sep 14 #Python
python实现canny边缘检测
Sep 14 #Python
Python gevent协程切换实现详解
Sep 14 #Python
通过实例了解python__slots__使用方法
Sep 14 #Python
You might like
php array_intersect()函数使用代码
2009/01/14 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
node.js发送邮件email的方法详解
2017/01/06 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
浅谈Angular单元测试总结
2019/03/22 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
深入理解Python中的元类(metaclass)
2015/02/14 Python
Python实现将xml导入至excel
2015/11/20 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
2020/06/03 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
计算s=f(f(-1.4))的值
2014/05/06 面试题
土建资料员岗位职责
2014/01/04 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
golang 如何用反射reflect操作结构体
2021/04/28 Golang
Python编程编写完善的命令行工具
2021/09/15 Python