Python日志级别是按严重程度和用途分层的信息分类工具:DEBUG用于开发调试细节,INFO记录关键运行节点,WARNING提示异常苗头,ERROR标识局部故障并带堆栈,CRITICAL表示全局性危机;定级本质是明确“谁看、为什么看、看到后做什么”的沟通契约。
Python日志级别不是随便设的,它本质是信息分类工具——按严重程度和用途把消息分层,让开发、运维、调试各取所需。选错级别不仅影响排查效率,还可能掩盖关键问题或刷屏无用信息。
记录最细粒度的操作细节,比如变量值、函数入参、循环内状态。生产环境默认关闭,避免性能损耗和敏感信息泄露。
logging.basicConfig(level=logging.DEBUG)
logger.debug(),确认是否应降级或删除标记正常流程中的重要节点,如服务启动、配置加载完成、任务开始/结束、外部调用成功返回。目标是让人一眼看清“系统在干什么”。
打INFO,例如循环体内的单次处理不记INFOlogger.info("User %s logged in via %s", user_id, auth_method)(用占位符,非字符串拼接)表示出现非预期但未中断流程的情况,比如接口返回码非200但已重试成功、配置项缺失使用了默认值、磁盘剩余空间低于85%。
logger.warning("Fallback to cache for order %s, DB timeout", order_id)
ERROR代表局部失败(如单次数据库查询失败、第三方API调用超时),CRITICAL代表全局性危机(如数据库连接池耗尽、核心配置加载失败导致服务无法启动)。
logger.error("Failed to send email", exc_info=True)
if not essential_init(): logger.critical("Abort: config invalid"); sys.exit(1)这类场景日志级别设计的核心是“谁看、为什么看、看到后做什么”。定级不是技术选择,而是沟通契约。合理分级后,grep、ELK、告警规则才能真正起作用。