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每次处理固定个数的字符的方法总结
Jan 29 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
Python批量查询域名是否被注册过
Jun 21 Python
python数字图像处理之高级形态学处理
Apr 27 Python
python判断数字是否是超级素数幂
Sep 27 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
Apr 05 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
基于pandas中expand的作用详解
Dec 17 Python
Python3内置函数chr和ord实现进制转换
Jun 05 Python
Java Unsafe类实现原理及测试代码
Sep 15 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
python中pymysql包操作数据库方法
Apr 19 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
一个简洁的多级别论坛
2006/10/09 PHP
PHP新手上路(六)
2006/10/09 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
浅析get与post的一些特殊情况
2014/07/28 PHP
老生常谈PHP中的数据结构:DS扩展
2017/07/17 PHP
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
工会主席事迹材料
2014/06/03 职场文书
企业员工集体活动方案
2014/08/17 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
员工考勤管理制度
2015/08/06 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python
详细介绍python操作RabbitMq
2022/04/12 Python
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL