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的Django框架部署的一些建议
Apr 09 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
Jun 14 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
python高阶爬虫实战分析
Jul 29 Python
Python File(文件) 方法整理
Feb 18 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
Python PIL图片添加字体的例子
Aug 22 Python
Python解析json代码实例解析
Nov 25 Python
Python 脚本的三种执行方式小结
Dec 21 Python
Keras在训练期间可视化训练误差和测试误差实例
Jun 16 Python
Python命令行参数argv和argparse该如何使用
Feb 08 Python
python playwright 自动等待和断言详解
Nov 27 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
第三节--定义一个类
2006/11/16 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
Python安装selenium包详细过程
2019/07/23 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
自定义django admin model表单提交的例子
2019/08/23 Python
python 字符串常用方法汇总详解
2019/09/16 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
高中毕业生自我鉴定
2013/11/03 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
生日宴会主持词
2014/03/20 职场文书
《荷花》教学反思
2014/04/16 职场文书
北京奥运会口号
2014/06/21 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js