You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Python文件正常运行同时将运行活动记录到日志文件?

Python 不改动原有逻辑实现日志记录

要在不影响Python原有运行逻辑的前提下记录运行活动,最稳妥的方式是使用Python标准库自带的logging模块——它无需额外安装,配置灵活,且完全不会干扰原有代码的执行流程。

基础实现步骤

  1. 导入并配置日志
    在代码开头添加日志配置,指定日志文件、记录级别和格式:

    import logging
    
    # 基础配置:将日志写入app.log文件,记录所有级别信息
    logging.basicConfig(
        filename='app.log',
        level=logging.DEBUG,
        format='%(asctime)s - %(levelname)s - %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S',
        encoding='utf-8'  # 避免中文乱码
    )
    
  2. 在原有代码中嵌入日志语句
    在关键流程点(启动、数据处理、异常捕获等)添加日志记录,完全保留原有业务逻辑:

    # 原有业务逻辑:比如一个数据处理函数
    def calculate_sum(a, b):
        # 记录调试细节
        logging.debug(f"进入calculate_sum函数,参数a={a}, b={b}")
        
        # 原有逻辑不变
        result = a + b
        
        # 记录正常执行结果
        logging.info(f"计算完成,结果为{result}")
        return result
    
    # 程序入口
    if __name__ == "__main__":
        logging.info("程序启动")
        try:
            total = calculate_sum(10, 20)
            # 原有print保留,不影响控制台输出
            print(f"总和:{total}")
        except Exception as e:
            # 记录错误信息,同时保留原有异常抛出逻辑
            logging.error(f"程序执行出错: {str(e)}", exc_info=True)
            raise
    

进阶优化:滚动日志文件

如果程序长期运行,单一日志文件会越来越大,可以用RotatingFileHandler实现日志滚动,自动分割大文件:

import logging
from logging.handlers import RotatingFileHandler

# 创建日志实例
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

# 配置滚动处理器:单个日志最大5MB,最多保留5个备份
handler = RotatingFileHandler(
    'app.log',
    maxBytes=5 * 1024 * 1024,  # 5MB
    backupCount=5,
    encoding='utf-8'
)
# 设置日志格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(module)s:%(lineno)d - %(message)s')
handler.setFormatter(formatter)

# 将处理器添加到日志实例
logger.addHandler(handler)

# 后续使用logger替代logging调用
logger.info("程序启动(滚动日志模式)")

核心注意事项

  • 不修改原有逻辑:所有日志语句都是附加操作,不会改变原有代码的分支、返回值或异常处理流程
  • 日志级别控制:生产环境可以将level设为logging.INFO或logging.WARNING,减少冗余日志
  • 兼容原有print:如果需要保留控制台输出,无需删除原有print语句,日志会独立写入文件
  • 异常记录:使用exc_info=True可以在日志中记录完整的异常堆栈,方便排查问题

内容的提问来源于stack exchange,提问作者Manas Basumatary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 14:00:47