python 日志logging设置按天进行保存,保存近7天,过期日志自动清理
参考文章(写的很详细):https://www.cnblogs.com/xujunkai/p/12364619.html
前言:
跑接口自动化或者其他程序运行时,如果只能保存一份log文件,可能会存在,log文件越来越大的问题,加载缓慢,查找日志也比较慢,增加日志根据天来保存,定期清理日志,可以达到日志更好的管理,更加方便日志查找。
怎么实现?
使用的是python语言,加上logging的TimedRotatingFileHandler实现
# 3、 输出到文件拓展,每天生成一个文件,保存近3天的的log文件,防止文件过大的
# interval 滚动周期, when="MIDNIGHT", interval=1 表示每天0点为更新点,每天生成一个文件,backupCount 表示日志保存个数
# filename:要加上每天的日期拼接组成
logs_path = os.path.join(project_path.logs_path_day, 'log')
file_hander = TimedRotatingFileHandler(filename=logs_path, when='MIDNIGHT',
interval=1, backupCount=3)
# 设置生成日志文件名的格式,以年-月-日来命名
# suffix设置,会生成文件名为log.2020-02-25.log
file_hander.suffix = "%Y-%m-%d.log"
# extMatch是编译好正则表达式,用于匹配日志文件名后缀
# 需要注意的是suffix和extMatch一定要匹配的上,如果不匹配,过期日志不会被删除。
file_hander.extMatch = re.compile(r"^\d{4}-\d{2}-\d{2}.log$")
file_hander.setFormatter(formatter)
可以更改日志的滚动周期来验证日志的生成效果,如

【注意点】
如果设置按S来生成日志文件的,注意不要传入文件名不允许的标点符号,如“:”,否则,会报文件名或目录不合法的错误
所以在设置文件名的格式的时候,要用其他符号代替“:”,比如“-”
正确写法:file_hander.suffix = "%Y-%m-%d %H-%M-%S.log"
OS报错写法:%Y-%m-%d %H:%M:%S
生成日志文件的名称,TimedRotatingFileHandler有默认设置,如果想修改suffix 和extmatch,需要和suffix匹配,否则无法删除
https://blog.csdn.net/qgf1099062139/article/details/83619280

删除日志时的exmatch,匹配正则表达式
https://blog.csdn.net/ashi198866/article/details/46725813
python 日志logging设置按天进行保存,保存近7天,过期日志自动清理的更多相关文章
- python模块 ---logging模块
摘要by crazyhacking: 与log4cxx一样,分为三个部分,logger, handler,formatter. 详细内容参考:1官网http://docs.python.org/2/h ...
- Python:logging 的巧妙设计
引言 logging 的基本用法网上很多,这里就不介绍了.在引入正文之前,先来看一个需求: 假设需要将某功能封装成类库供他人使用,如何处理类库中的日志? 数年前在一个 C# 开发的项目中,我用了这样的 ...
- log4j 设置将生成的日志进行gz压缩并删除过期日志
1.准备jar :log4j-1.2.17.jar,commons-logging-1.2.jar,这2个就可以了,其他关于日志的jar包就不要加进来了,在优先级上会有冲突. 2.定义一个类,继承R ...
- python日志按天分割,保存近一个月日志,日志自动清理
python日志按天分割,保存近一个月日志 import os import logging import re from logging.handlers import TimedRotatingF ...
- Python同时向控制台和文件输出日志logging的方法 Python logging模块详解
Python同时向控制台和文件输出日志logging的方法http://www.jb51.net/article/66756.htm 1 #-*- coding:utf-8 -*- 2 import ...
- python标准库-日志logging
1.模块级别 先看一下logging模块的日志级别特点,共分6个等级. 可以手工设置当前日志的默认等级(warn),当日志输出的等级高于默认等级时,日志输出到屏幕,否则不输出. #!/usr/bin/ ...
- python之打印日志logging
import logging # 简单打印日志举例 logging.basicConfig(level=logging.DEBUG) # 设置日志级别,WARN logging.warning('Wa ...
- Python 中 logging 日志模块在多进程环境下的使用
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...
- python 的日志logging模块
1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message')logging.info('This is info messag ...
随机推荐
- Spring Boot 自动扫描组件
使用@ComponentScan自动扫描组件 案例准备 1.创建一个配置类,在配置类上添加 @ComponentScan 注解.该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <con ...
- SQLServer和java数据类型的对应关系
转载自:https://www.cnblogs.com/cunkouzh/p/5504052.html SQL Server 类型 JDBC 类型 (java.sql.Types) Java 语言类型 ...
- AI 2021 年度报告
建议大伙有空还是自己亲自读一下,虽然有点长,188页ppt. https://docs.google.com/presentation/d/1bwJDRC777rAf00Drthi9yT2c9b0Ma ...
- RDS备份到OSS增量+全量
一.前言 阿里云的RDS备份是占用使用量的,你购买200G那备份使用量是100G左右,导致备份一般也就存半个月,2个全备份. 那半个月后之前的也就删除了,如果要持续保留更久将花费不少的金钱.所以这里用 ...
- 开发中Design Review和Code Review
一.Design Review 详解 翻译为设计评审,也就是对需求设计进行审核,防止出现异常问题,例如下面的这些 可用性 外部依赖有哪些?如果这些外部依赖崩溃了我们有什么处理措施? 我们SLA是什么? ...
- Java动态脚本Groovy读取配置文件
前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 核心涉及: @Value:作用是通过注解将常量.配置文件中的值.其他bean的属性值注入到变量中,作为变量的初始值. @Configur ...
- 设置项目的日程排定方式(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 [项目]>[属性]>[项目信息]>[日程排定方法]>选取: 默认项是[项目开始日期]. 这两位是干 ...
- 基于MCRA-OMLSA的语音降噪(一):原理
前面的几篇文章讲了webRTC中的语音降噪.最近又用到了基于MCRA-OMLSA的语音降噪,就学习了原理并且软件实现了它.MCRA主要用于噪声估计,OMLSA是基于估计出来的噪声去做降噪.类比于web ...
- LuoguB2104 矩阵加法 题解
Content 给定两个 \(n\times m\) 的矩阵 \(A,B\),求 \(C=A+B\). 数据范围:\(1\leqslant n,m\leqslant 100\). Solution 我 ...
- CF675A Infinite Sequence 题解
Content 给定三个整数 \(a,b,c\),问你 \(b\) 是否在以 \(a\) 为首项,公差为 \(c\) 的等差数列中. 数据范围:\(-10^9\leqslant a,b,c\leqsl ...