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

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

TimedRotatingFileHandler有三个参数很关键

when、interval、backupCount

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

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

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")))

结果:

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

666

最新文章

  1. 趣说游戏AI开发:对状态机的褒扬和批判
  2. loadrunner录制时弹出invalid application path!please check if application exists对话框
  3. Physicals
  4. JQuery POST请求乱码...
  5. SVG绘制圆形简单示例分享
  6. Http协议基本知识简介
  7. MongoDB中聚合工具Aggregate等的介绍与使用
  8. Nginx学习之配置RTMP模块搭建推流服务
  9. python - hash类型操作
  10. Codeforces #381(div2)
  11. 关于linux系统CPU篇--->平均负载
  12. BFC是什么及能用它能做什么
  13. Docker中部署Mysql5.7和DbAdmin的docker-compose.yml
  14. JJTree Tutorial for Advanced Java Parsing
  15. V4L2 driver -整体架构
  16. mysql查询各个知识点
  17. yii---控制器的创建
  18. TensorFlow入门(三)多层 CNNs 实现 mnist分类
  19. TortoiseGit + msysgit 记住帐号密码方法及使用密匙的方法
  20. 阅读ANSI C,寻找乐趣和裨益——const char **与char **为何不兼容

热门文章

  1. CPU 和 Linux 进程
  2. error: cast from ‘char*’ to ‘int’ loses precision
  3. 摘之知乎网友...PHYTIN学习
  4. [转] CentOS系统目录学习
  5. 下拉框改变事件:获取下拉框中当前选择的文本 SelectionChanged事件
  6. HDLM工具介绍
  7. 控制器对应view生命周期
  8. 部署和调优 2.4 tomcat安装
  9. DAY17-认证系统
  10. Javascript面向对象(三):非构造函数的继承