欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

Python 调试技巧:pdb 与 logging 最佳实践

时间:2026年08月12日 04:46:50 浏览:0

pdb 命令行调试


import pdb

def buggy_func(x):
pdb.set_trace() # 断点
result = x / 0 # 触发错误
return result

buggy_func(5)

常用命令:



  • n (next):执行下一行

  • s (step):进入函数内部

  • p var:打印变量

  • c (continue):继续执行

  • q (quit):退出


logging 日志配置


import logging

logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('app.log'),
logging.StreamHandler()
]
)

logger = logging.getLogger(__name__)

logger.debug("调试信息")
logger.info("启动服务")
logger.warning("磁盘空间不足")
logger.error("连接数据库失败", exc_info=True) # 打印堆栈

断言 (assert)


def divide(a, b):
assert b != 0, "除数不能为0"
return a / b

性能计时装饰器


import time
from functools import wraps

def log_time(func):
@wraps(func)
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = func(*args, **kwargs)
elapsed = time.perf_counter() - start
logger.info(f"{func.__name__} took {elapsed:.3f}s")
return result
return wrapper

合理使用调试工具能节省大量排查时间。