可以使用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脚本中执行,或者封装成一个模块供其他程序调用

可以基于python开发一个日志管理模块并且日志文件过两天后自动删除

原文地址: http://www.cveoy.top/t/topic/hXFy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录