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)

喜欢的点个赞❤吧!

           

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
25天前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
228 7
|
30天前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
256 4
|
26天前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
199 0
|
27天前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
141 0
|
1月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
199 0
|
存储 安全 Python
[python]使用标准库logging实现多进程安全的日志模块
[python]使用标准库logging实现多进程安全的日志模块
400 1
|
JSON 安全 Linux
Python日志库Loguru教程(最人性化的Python日志模块)
Loguru是一个旨在为Python带来愉悦的日志记录的库。在使用中可以让我们更加简便的使用日志功能,从而把精力放到要解决的问题上。
1200 0
Python日志库Loguru教程(最人性化的Python日志模块)
|
JSON 监控 安全
Python日志模块:实战应用与最佳实践
Python日志模块:实战应用与最佳实践
328 0
|
测试技术 Python
Python快速上手系列--日志模块--详解篇
Python快速上手系列--日志模块--详解篇
183 0

推荐镜像

更多