可以基于python开发一个日志管理模块并且日志文件过两天后自动删除
可以使用Python的logging模块来开发日志管理模块,并使用定时任务来自动删除过期的日志文件。
首先,我们需要导入logging和os模块:
import logging
import os
然后,我们可以定义一个函数来初始化日志配置,并设置日志输出的格式、级别和文件名:
def init_logging(log_directory):
log_filename = os.path.join(log_directory, 'app.log')
# 设置日志输出格式
log_format = "%(asctime)s [%(levelname)s] %(message)s"
logging.basicConfig(level=logging.DEBUG,
format=log_format,
filename=log_filename,
filemode='a')
# 控制台输出日志
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter(log_format)
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
接下来,我们可以定义一个函数来清理过期的日志文件。这里我们可以使用os模块的相关函数来获取文件的创建时间,并与当前时间进行比较:
def cleanup_logs(log_directory, days_to_keep):
now = time.time()
for filename in os.listdir(log_directory):
file_path = os.path.join(log_directory, filename)
if not os.path.isfile(file_path):
continue
if now - os.path.getctime(file_path) > (days_to_keep * 24 * 60 * 60):
os.remove(file_path)
最后,我们可以调用上述函数来初始化日志配置和清理过期的日志文件,并使用logging模块来记录日志:
log_directory = '/path/to/logs'
days_to_keep = 2
init_logging(log_directory)
logging.info('This is a log message')
cleanup_logs(log_directory, days_to_keep)
以上代码可以在Python脚本中执行,或者封装成一个模块供其他程序调用
原文地址: http://www.cveoy.top/t/topic/hXFy 著作权归作者所有。请勿转载和采集!