python日志记录

python日志记录

介绍

python使用flask后端开发,如何记录日志?要求按日期生成日志文件,并自动删除30天之前的日志文件,并且在其他文件可以很容易使用logger。

示例

可以使用Python标准库中的logging和logging.handlers模块来实现按日期生成日志文件,并自动删除30天之前的日志文件。

以下是一个示例代码,演示如何实现这个功能:

import logging
from logging.handlers import TimedRotatingFileHandler
import os
import datetime

def get_logger(logger_name, log_file_path):
    logger = logging.getLogger(logger_name)
    logger.setLevel(logging.DEBUG)

    # 创建TimedRotatingFileHandler,按天分割日志文件
    file_handler = TimedRotatingFileHandler(log_file_path, when='midnight', backupCount=30)
    file_handler.setLevel(logging.DEBUG)

    # 设置日志格式
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    file_handler.setFormatter(formatter)

    # 添加文件处理程序
    logger.addHandler(file_handler)

    # 添加控制台处理程序,可以选择是否添加
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.DEBUG)
    console_handler.setFormatter(formatter)
    logger.addHandler(console_handler)

    return logger

在这个示例中,我们定义了一个get_logger函数,用于生成logger实例。该函数接受两个参数:logger_name和log_file_path。logger_name用于给logger命名,log_file_path用于指定日志文件的路径和名称。

在函数内部,我们首先创建了一个logger实例,并设置了日志级别为DEBUG。然后,我们创建了一个TimedRotatingFileHandler,用于按天分割日志文件。我们设置了when参数为‘midnight’,意思是每天午夜(0点)生成一个新的日志文件。backupCount参数设置为30,表示保留最近30天的日志文件。我们还设置了日志文件的级别为DEBUG,并将日志格式化为指定的格式。

最后,我们将文件处理程序添加到logger实例中,并选择性地添加控制台处理程序。如果不需要在控制台输出日志,可以省略控制台处理程序。

在其他文件中使用logger,可以在文件中先导入get_logger函数,然后调用该函数生成logger实例。例如:

from mylogger import get_logger

logger = get_logger('example', 'example.log')

logger.debug('Debug log')
logger.info('Info log')
logger.warning('Warning log')
logger.error('Error log')
logger.critical('Critical log')

在这个示例中,我们从mylogger模块中导入get_logger函数,然后使用该函数生成logger实例。我们可以使用logger实例记录各种级别的日志信息,这些日志信息将被写入到指定的日志文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值