日志级别 INFO 和 DEBUG 有什么区别?该怎么用?

DEBUG 是给开发者的细粒度调试信息,生产环境通常关闭;INFO 是有意义的业务事件记录,生产环境常态开启。本文讲清各级别语义和使用规范。

最佳实践
日志级别 INFO 和 DEBUG 有什么区别?该怎么用?封面

一句话:DEBUG 记录"程序内部怎么走的"(给开发者排障用,生产关闭),INFO 记录"业务上发生了什么"(有意义的运行事件,生产常态开启)。

各级别语义

级别 语义 典型内容 生产环境
DEBUG 最细粒度调试信息 变量值、函数进出、分支判断 通常关闭
INFO 有意义的运行事件 服务启动、任务完成、用户关键操作 开启
WARN 潜在问题,不影响运行 配置缺失用默认值、重试、资源接近上限 开启
ERROR 错误,功能受影响但程序活着 请求失败、异常被捕获 开启+告警
FATAL/CRITICAL 致命错误,程序即将终止 数据库连不上、启动失败 开启+告警

实际例子

logger.debug(f"查询参数: {params}, 耗时: {elapsed}ms")   # 排障细节
logger.info(f"用户 {user_id} 下单成功,订单号 {order_id}") # 业务事件
logger.warning(f"缓存未命中,回源查询")                   # 异常但可容忍
logger.error(f"支付接口调用失败: {e}")                    # 功能错误

使用规范

  1. 生产环境级别设 INFO:DEBUG 日志量巨大且暴露内部细节;
  2. 临时排查可动态开 DEBUG:很多框架支持运行时调整某个 logger 的级别;
  3. ERROR 配合告警:ERROR 级日志应触发告警流程,而不只是写文件。

观测云对照

观测云日志查看器支持按日志级别(status 字段)快速过滤 DEBUG/INFO/ERROR;监控器可以配置"ERROR 日志数量超过阈值时告警"到钉钉/企微/飞书。

常见问题(FAQ)

Q:DEBUG 日志不写,出问题时怎么办?
A:靠 INFO+ERROR 的上下文、APM 链路追踪定位;确实需要时临时打开 DEBUG 级别复现问题,查完关闭。

Q:TRACE 是什么级别?
A:比 DEBUG 更细(如循环中每次迭代),log4j2、Python logging(自定义)等有,一般用不到。

Q:级别设高了会丢日志吗?
A:会。logger 级别是 INFO 时,DEBUG 消息直接不输出。级别是"门槛",低于门槛的丢弃。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台