先说一下我设置的清理日志原理:
每天都建立一个新的日志文件来存储日志,每次启用程序时检查日志目录里的所有日志文件,自动清理上个月之前的日志。

如图,我把日期存在当天日志的名字里。
然后遍历目录下所有的文件名,提取出年份和月份信息,和今天的年份和月份信息进行对比,筛选出上个月之前的日志文件进行删除操作。

import logging   # 日志模块
import datetime   # 时间模块
import os# 设置日志存放路径
path = '.\\log\\'
if(not os.path.exists(path)):os.mkdir(path)# 获取今天的日期 格式2019-08-01
today_date = str(datetime.date.today())# 定义日志
logging.basicConfig(filename = path + 'log_' + today_date + '.txt', level = logging.DEBUG, filemode = 'a', format = '【%(asctime)s】 【%(levelname)s】 >>>  %(message)s', datefmt = '%Y-%m-%d %H:%M')# 清理上个月的日志
def clean_log():global pathglobal today_date# 遍历目录下的所有日志文件 i是文件名for i in os.listdir(path):file_path = path + i    # 生成日志文件的路径# 获取日志的年月,和今天的年月today_m = int(today_date[5:7])   # 今天的月份m = int(i[9:11])   # 日志的月份today_y = int(today_date[0:4])   # 今天的年份y = int(i[4:8])   # 日志的年份# 对上个月的日志进行清理,即删除。if(m < today_m):if(os.path.exists(file_path)):   # 判断生成的路径对不对,防止报错os.remove(file_path)   # 删除文件elif(y < today_y):if(os.path.exists(file_path)):os.remove(file_path)

喜欢的点个赞❤吧!

python 技术篇-logging模块的日志定期清理设置,自动清理上个月的日志实例演示相关推荐

  1. 设置自动清理mysql binlog日志和手动删除的方法

    MYSQL主从复制(replication)采用 RBR 模式后,binlog的格式为"ROW",能解决很多原先出现的主键重复问题. 在一个繁忙的master db server上 ...

  2. Python 技术篇-解决转化后的exe程序被360误杀问题实例演示,python生成的exe被360识别为勒索病毒原因及解决方法

    我用 python 做了两个功能相似的程序,A 程序没问题,B 程序有问题,被 360 误杀,对比后发现 B 程序引用了 os 库,替换成了别的库实现 os 库的功能,新的程序不再有问题.罪魁祸首就是 ...

  3. Python 技术篇 - 使用pypandoc库实现html文档转word文档实例演示

    首先需要安装 pandoc 程序,pypandoc 是用来调用该程序来完成工作的. 工具获取: 小蓝枣的csdn资源仓库 转换代码如下: # -*- coding:utf-8 -*- import p ...

  4. Python 技术篇-利用pdfkit库实现html格式文件转换PDF文档实例演示

    准备: 首先需要安装 pdfkit 库,使用 pip install pdfkit 命令就好了. 还需要安装 wkhtmltopdf 工具,本质就是利用这个工具来进行转换,pdfkit 库就是作为接口 ...

  5. Python 技术篇-使用time库获取秒级时间戳、毫秒级时间戳实例演示

    time.time() 可以获取时间戳. 秒级时间戳就是把它的小数部分四舍五入去掉,转化成整数. 毫秒级时间戳就是取小数点后的四位,四舍五入一下. import timetime_stamp = ti ...

  6. Python 技术篇-用zipfile库进行zip文件的压缩与解压实例演示,python压缩本地文件夹为zip文件并保留目录结构

    首先给大家演示下 zip 文件的解压方法. import zipfiledef zip_extract_to(path_zip, path_aim):'''作用:解压压缩包参数一:压缩包位置参数二:解 ...

  7. python之 logging模块详细使用【转载】

    很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,主要用于输出 ...

  8. Python中logging模块的基本用法

    本文首发于:行者AI 在开发项目时,我们不可能将所有的信息都打印在控制台中.我们可以使用Python标准库提供的logging API来处理.相比print,logging模块提供了许多强大而灵活的功 ...

  9. python 之logging 模块

    很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...

最新文章

  1. 生产者和消费者代码———操作系统_操作系统基础15-生产者消费者问题
  2. wcf rest系列文章
  3. Celery多个定时任务使用RabbitMQ,Queue冲突解决
  4. tmpfs 文件系统介绍
  5. 高性能反向代理软件HAProxy(一)之基本概念
  6. ArcGIS:ArcToolBox工具使用——提取DEM/DSM中的高程点
  7. restapi如何传图片_如何设计restful风格接口
  8. php 复制一张图片,PHP 生成一张图片的两种方法
  9. nacos动态配置数据源_Sentinel使用Nacos存储规则及同步
  10. JavaScript常用算法 1
  11. excel多列数据生成图分类有间隔
  12. 7-设计模式之行为模式(模板方法、策略、命令、责任链)
  13. arcgis制作遥感影像标签(分割分类目标提取方向)
  14. C#保存excel文件时提示文件格式与扩展名不匹配
  15. C语言中mac是什么意思,CMAC是什么意思
  16. java获取钉钉登录信息,JAVA maven项目使用钉钉SDK获取token、用户
  17. PS中去掉图片周围的无用白色区域
  18. 上海莉莉丝、米哈游、B站、小红书、得物等互联网公司前端面试总结
  19. prometheus告警配置
  20. perl 大小写转化

热门文章

  1. 以其他控制器为目标 在视图中生成输出URL
  2. Android 5.1 添加硬件抽象层(HAL)和JNI接口总结
  3. android ip探测,Android-IpReachabilityMonitor
  4. 计算机毕业生求职之路
  5. mysql下count(*)和count(1)的区别
  6. MySQL8.0新特性——默认使用caching_sha2_password作为身份验证插件
  7. [转]json2.js 源码解读
  8. Swagger+AutoRest 生成web api客户端(.Net)
  9. 性能测试、负载测试以及压力测试
  10. 12864液晶显示实验