日志级别是什么
级别是日志的预算分配:错误级别喊人、警告级别预警、信息级别记录状态变化、调试级别提供排障细节。级别用错会走向两个极端——把可预期的小失败都记成错误,告警信号被稀释;或者在生产全量打开调试日志,日志量放大几十倍,成本与性能同时恶化。级别的判据应该统一为「这条日志是否需要人介入」。
基本信息
| 常见级别 | ERROR、WARN、INFO、DEBUG,部分框架还有 TRACE 与 FATAL |
|---|---|
| 默认建议 | 生产从 INFO 起步,按模块动态调整 |
| 变更方式 | 配置中心或环境变量,支持运行期调整更优 |
| 配套要求 | 结构化输出,级别作为独立字段便于过滤 |
典型使用场景
- 线上排障:临时把某模块调到调试级别,缩小范围后立即恢复
- 成本控制:把高频成功的请求日志从信息级别降下去或做抽样
- 告警联动:错误级别日志进告警通道,其余进检索与统计
- 发布观察:灰度期间提高关键模块的日志详细程度
- 噪声治理:定期统计各级别日志量,找出刷屏来源
级别选择参考
级别选择参考
ERROR 需要人介入的失败:请求失败、任务中断、数据一致性风险
WARN 可自愈或潜在劣化:重试成功、容量逼近水位、降级触发
INFO 状态变化与关键事件:启动、发布、配置变更、扩缩容
DEBUG 排障细节:默认关闭,按模块短时开启,定位完就关
TRACE 极细粒度调用链:仅本地或极短时间窗口使用
# 判据统一为一句话:这条日志是否需要人介入
# 需要人介入 -> ERROR;不需要但值得关注 -> WARN 或 INFO级别与处理方式
| 级别 | 典型内容 | 处理方式 |
|---|---|---|
| ERROR | 请求失败、数据风险 | 进告警通道并纳入值班 |
| WARN | 重试成功、水位逼近 | 进看板与趋势统计,一般不喊人 |
| INFO | 启动发布、关键状态 | 检索与审计的主要来源 |
| DEBUG | 调用细节、参数 | 默认关闭,按需短时开启 |
| TRACE | 极细粒度过程 | 成本高,仅限本地或短窗口 |
级别调整要可运行期生效:改配置重启服务来完成调试级别切换,在高频服务上代价太大,也容易忘记改回来。
级别统计本身也是有价值的巡检项:某一级别的日志量出现阶跃变化,往往对应代码变更或依赖异常。