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 ...
随机推荐
- 【编程思想】【设计模式】【行为模式Behavioral】registry
Python版 https://github.com/faif/python-patterns/blob/master/behavioral/registry.py #!/usr/bin/env py ...
- i++ 和 ++i 探究原理
先看一个例子: package com.test; public class AutoIncrement { public static void main(String[] args) { int ...
- Consumer方法结合Lambda表达式的应用
package com.itheima.demo05.Consumer;import java.util.function.Consumer;/** * @author newcityman * @d ...
- Linux实体服务器添加网卡
目录 一.简介 二.配置 三.添加网卡 四.总结 一.简介 服务器如果搭配了网口,在插入网线或者光纤后会亮灯.如果发现不亮,可以关闭机器查看亮不亮,因为有的时候系统会把网口禁用,进入到系统反而不亮了, ...
- Java Web三大组件之过滤器(Filter)
什么是过滤器?有什么用? 过滤器JavaWeb三大组件之一,它与Servlet很相似.不过滤器是用来拦截请求的,而不是处理请求的.过滤,顾名思义,就是留下我们想要的,丢掉我们不需要的.例如:某个网站的 ...
- Windows11下载地址
10月5日微软推出了Win11正式版本,但是仍然不支持apk格式,不免让人失望.下面是Win11商业版本下载地址: 下载地址1: ed2k://|file|zh-cn_windows_11_busin ...
- ctfshow 红包题 武穆遗书
偶然见看到这道题,就下载了看了看.确实是我自己的逆向能力不够,逆不动.但是我似乎找到了非预期... 下载程序,ida打开,发现不对.后来发现是加了upx壳,拿软件去一下.再次ida打开. 其中buff ...
- LET函数(Excel函数集团)
LET函数,是个Office365新增函数,所以,还在用上古版本的童鞋请无视此篇哈~ 话说Excel中,有个自定义名称的功能,如下图,左右两个表分别自定义了"data1"和&quo ...
- 批处理文件(.bat)并行Arcpy脚本提高效率的思路
Arcpy提供数据处理的方便接口,但一个Arcpy脚本通常只运行于一个核上.现在电脑通常是多核乃至多处理器,如果能将任务分解为可同时进行的若干任务,便可通过并行充分利用电脑性能. 折腾了python并 ...
- 模仿写了一个摸鱼APP解决原作者的问题
前几天见到微博里有人提到摸鱼APP,发现需要在windows store下载才可以使用,文件约100多M左右的样子,自已没有登录微软Store的习惯.想想只有一个介面,没有必要这么大,于是,自已动手写 ...