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计数排序和基数排序算法实例
Apr 25 Python
Python学习笔记之常用函数及说明
May 23 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
Python使用crontab模块设置和清除定时任务操作详解
Apr 09 Python
Pythony运维入门之Socket网络编程详解
Apr 15 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
Python pandas库中的isnull()详解
Dec 26 Python
python 实现任务管理清单案例
Apr 25 Python
python 检测nginx服务邮件报警的脚本
Dec 31 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
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
python之PyMongo使用总结
2017/05/26 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
自我评价的正确写法
2013/09/19 职场文书
预备党员介绍人意见
2015/06/01 职场文书
2015暑假假期总结
2015/07/13 职场文书
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android