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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: python 技术篇-logging模块的日志定期清理设置,自动清理上个月的日志实例演示

先说一下我设置的清理日志原理:

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

image.png

如图,我把日期存在当天日志的名字里。

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

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 path
  global 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)

喜欢的点个赞❤吧!

           

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
15天前
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
8天前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
18 2
|
7天前
|
Python Windows
python知识点100篇系列(24)- 简单强大的日志记录器loguru
【10月更文挑战第11天】Loguru 是一个功能强大的日志记录库,支持日志滚动、压缩、定时删除、高亮和告警等功能。安装简单,使用方便,可通过 `pip install loguru` 快速安装。支持将日志输出到终端或文件,并提供丰富的配置选项,如按时间或大小滚动日志、压缩日志文件等。还支持与邮件通知模块结合,实现邮件告警功能。
python知识点100篇系列(24)- 简单强大的日志记录器loguru
|
22天前
|
Python
Python中的push方法详解与实例
Python中的push方法详解与实例
21 3
|
25天前
|
数据采集 机器学习/深度学习 存储
使用 Python 清洗日志数据
使用 Python 清洗日志数据
28 2
|
22天前
|
数据可视化 Python
Python绘制基频曲线——实例解析与应用探讨
Python绘制基频曲线——实例解析与应用探讨
19 0
|
23天前
|
Python 容器
AutoDL Python实现 自动续签 防止实例过期释放 小脚本 定时任务 apscheduler requests
AutoDL Python实现 自动续签 防止实例过期释放 小脚本 定时任务 apscheduler requests
18 0
|
21天前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
135 3
|
21天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1585 14
|
17天前
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
20 0