python 技术篇-日志定期清理设置,自动清理上个月的日志实例演示
时间:2022-07-25
本文章向大家介绍python 技术篇-日志定期清理设置,自动清理上个月的日志实例演示,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
先说一下我设置的清理日志原理: 每天都建立一个新的日志文件来存储日志,每次启用程序时检查日志目录里的所有日志文件,自动清理上个月之前的日志。
如图,我把日期存在当天日志的名字里。 然后遍历目录下所有的文件名,提取出年份和月份信息,和今天的年份和月份信息进行对比,筛选出上个月之前的日志文件进行删除操作。
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)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 带大家体验一下删库跑路,不是虚拟机,是真的服务器哦!
- 数据库压力测试方法概述
- Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined) B. Bash's Big Day (Hash+简单数论)
- 随机点名系统——html初学实战
- Centos 7 使用 rpm 安装 JDK 1.8
- PAT (Advanced Level) Practice 1145 Hashing - Average Search Time (25分)
- Centos 7使用 rpm 安装 MySQL 5.7
- Leetcode 300. 最长上升子序列(n方dp,nlogn贪心+二分查找)
- select 进阶查询
- Codeforces Round #627 (Div. 3) E. Sleeping Schedule (DP)
- PAT (Advanced Level) Practice 1144 The Missing Number (20分)
- JDBC 基础操作
- Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) C. Remove Adjacent
- MySQL 存储过程
- MySQL 约束