python logging日志库
2024-08-31 20:59:21
项目中使用的日志库是使用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
最新文章
- 趣说游戏AI开发:对状态机的褒扬和批判
- loadrunner录制时弹出invalid application path!please check if application exists对话框
- Physicals
- JQuery POST请求乱码...
- SVG绘制圆形简单示例分享
- Http协议基本知识简介
- MongoDB中聚合工具Aggregate等的介绍与使用
- Nginx学习之配置RTMP模块搭建推流服务
- python - hash类型操作
- Codeforces #381(div2)
- 关于linux系统CPU篇--->;平均负载
- BFC是什么及能用它能做什么
- Docker中部署Mysql5.7和DbAdmin的docker-compose.yml
- JJTree Tutorial for Advanced Java Parsing
- V4L2 driver -整体架构
- mysql查询各个知识点
- yii---控制器的创建
- TensorFlow入门(三)多层 CNNs 实现 mnist分类
- TortoiseGit + msysgit 记住帐号密码方法及使用密匙的方法
- 阅读ANSI C,寻找乐趣和裨益——const char **与char **为何不兼容
热门文章
- CPU 和 Linux 进程
- error: cast from ‘char*’ to ‘int’ loses precision
- 摘之知乎网友...PHYTIN学习
- [转] CentOS系统目录学习
- 下拉框改变事件:获取下拉框中当前选择的文本 SelectionChanged事件
- HDLM工具介绍
- 控制器对应view生命周期
- 部署和调优 2.4 tomcat安装
- DAY17-认证系统
- Javascript面向对象(三):非构造函数的继承