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合理使用调试工具能节省大量排查时间。
