排查线上报错时,如果只写 logger.error(str(e)),通常看不到出错位置。放在 except 里用 logger.exception,会把当前异常的 traceback 一起记下来:
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
try:
result = 10 / 0
except Exception:
logger.exception("计算失败")
环境:Python 3.x、标准库 logging。logger.exception 只适合在处理异常的上下文里调用;如果是结构化日志,也可以用 logger.error("计算失败", exc_info=True)。别把用户输入或密钥直接拼进错误信息里。