参考文章(写的很详细):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天,过期日志自动清理的更多相关文章

  1. python模块 ---logging模块

    摘要by crazyhacking: 与log4cxx一样,分为三个部分,logger, handler,formatter. 详细内容参考:1官网http://docs.python.org/2/h ...

  2. Python:logging 的巧妙设计

    引言 logging 的基本用法网上很多,这里就不介绍了.在引入正文之前,先来看一个需求: 假设需要将某功能封装成类库供他人使用,如何处理类库中的日志? 数年前在一个 C# 开发的项目中,我用了这样的 ...

  3. log4j 设置将生成的日志进行gz压缩并删除过期日志

    1.准备jar  :log4j-1.2.17.jar,commons-logging-1.2.jar,这2个就可以了,其他关于日志的jar包就不要加进来了,在优先级上会有冲突. 2.定义一个类,继承R ...

  4. python日志按天分割,保存近一个月日志,日志自动清理

    python日志按天分割,保存近一个月日志 import os import logging import re from logging.handlers import TimedRotatingF ...

  5. Python同时向控制台和文件输出日志logging的方法 Python logging模块详解

    Python同时向控制台和文件输出日志logging的方法http://www.jb51.net/article/66756.htm 1 #-*- coding:utf-8 -*- 2 import ...

  6. python标准库-日志logging

    1.模块级别 先看一下logging模块的日志级别特点,共分6个等级. 可以手工设置当前日志的默认等级(warn),当日志输出的等级高于默认等级时,日志输出到屏幕,否则不输出. #!/usr/bin/ ...

  7. python之打印日志logging

    import logging # 简单打印日志举例 logging.basicConfig(level=logging.DEBUG) # 设置日志级别,WARN logging.warning('Wa ...

  8. Python 中 logging 日志模块在多进程环境下的使用

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...

  9. python 的日志logging模块

    1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message')logging.info('This is info messag ...

随机推荐

  1. FindUserByPageServlet

    package com.hopetesting.web.servlet;import com.hopetesting.domain.PageBean;import com.hopetesting.do ...

  2. pandas读取csv文件中文乱码问题

    1.为什么会出现乱码问题,用什么方式编码就用什么方式解码,由于csv不是用的utf-8编码,故不能用它解码. 常用的编码方式有 utf-8,ISO-8859-1.GB18030等. 2.中文乱码原因: ...

  3. 带你揭开WebSerivce的面纱

    最近在工作中遇到这样的一个项目(暂且定为项目A),项目A本身是用PHP开发的,但是其数据是来自于另一个使用java开发的项目(暂且定为项目B),项目A不能操作项目B的数据库,它有其自己的一套数据库,只 ...

  4. Linux命令执行过程

    目录 一.命令分类 二.命令执行顺序 三.命令分类及查找基本命令 四.命令执行过程 一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需 ...

  5. .gitignore文件作用

    目录 一.简介 二.常用规则 三.详细 一.简介 一般来说每个Git项目中都需要一个.gitignore文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中. 意思就是本地修改完项目后,上 ...

  6. 数据挖掘实战 - 天池新人赛o2o优惠券使用预测

    数据挖掘实战 - o2o优惠券使用预测 一.前言 大家好,家人们.今天是2021/12/14号.上次更新是2021/08/29.上篇文章中说到要开两个专题,果不其然我鸽了,这一鸽就是三个多月.今天,我 ...

  7. Pytorch入门上 —— Dataset、Tensorboard、Transforms、Dataloader

    本节内容参照小土堆的pytorch入门视频教程.学习时建议多读源码,通过源码中的注释可以快速弄清楚类或函数的作用以及输入输出类型. Dataset 借用Dataset可以快速访问深度学习需要的数据,例 ...

  8. 【论文笔记】Recommendations as Treatments: Debiasing Learning and Evaluation

    Recommendations as Treatments: Debiasing Learning and Evaluation Authors: Tobias Schnabel, Adith Swa ...

  9. [BSidesCF 2019]Runit(细心)

    这道题目并不难,甚至很简单,通过这个文章提醒自己一定要细心 例行检查我就不放了 首先程序开启了nx这个保护,但是首先buf却鲜卑mmap映射了 然后程序又调用了buf 所以这道题直接上传shellco ...

  10. Jetpack Compose的Modifier顺序问题

    一:前言 困惑起源于这段代码 Composable.clickable(点击1).clickable(点击2).size(100.dp).size(200.dp){ ............... } ...