系统设置
日志设置
日志设置页面允许管理员动态调整系统日志级别,实时控制日志输出的详细程度。这对于生产环境排查问题非常有用,无需重启服务即可切换日志级别。
访问路径
设置 > 日志(/settings/logs)
功能概述
日志设置页面提供以下核心功能:
- 动态日志级别调整:实时修改系统日志输出级别
- 即时生效:调整后立即生效,无需重启服务
- 级别预览:清晰展示当前级别与新选择级别的差异
日志级别说明
Claude Code Hub 使用 Pino 作为日志库,支持以下六个日志级别(从高到低):
| 级别 | 说明 | 适用场景 |
|---|---|---|
| Fatal | 仅致命错误 | 极高负载生产环境,最小化日志开销 |
| Error | 错误信息 | 高负载生产环境,仅关注错误 |
| Warn | 警告 + 错误 | 需要监控限流触发、熔断器状态等警告信息 |
| Info | 关键业务事件 + 警告 + 错误 | 推荐生产环境,记录供应商选择、Session 复用、价格同步等关键事件 |
| Debug | 调试信息 + 所有级别 | 推荐开发环境,包含详细调试信息 |
| Trace | 极详细追踪 + 所有级别 | 深度排查问题时使用,日志量极大 |
日志级别包含关系
日志级别具有包含关系。例如,选择 Info 级别时,会同时输出 Info、Warn、Error 和 Fatal 级别的日志。
使用方法
查看当前日志级别
进入日志设置页面后,系统会自动从服务端获取当前的日志级别,并在下拉选择器中显示。
修改日志级别
- 在「日志级别控制」区域,点击日志级别下拉选择器
- 从下拉列表中选择目标日志级别
- 系统会显示一个橙色提示框,说明当前级别与即将切换到的级别
- 确认无误后,点击「保存设置」按钮
- 保存成功后会收到提示,新的日志级别立即生效
生产环境建议
- 生产环境推荐使用
Info级别,可以记录关键业务事件而不会产生过多日志 - 排查问题时可临时切换到
Debug或Trace级别,问题解决后记得调回 Trace级别会产生大量日志,可能影响系统性能,请谨慎使用
环境变量配置
除了在界面上动态调整,还可以通过环境变量设置初始日志级别:
# 设置日志级别(可选值:fatal, error, warn, info, debug, trace)
LOG_LEVEL=info
优先级规则:
- 优先使用环境变量
LOG_LEVEL的值 - 如果设置了
DEBUG_MODE=true,则使用debug级别(向后兼容) - 开发环境(
NODE_ENV=development)默认debug - 生产环境默认
info
动态调整与环境变量
通过界面动态调整的日志级别仅在当前进程有效。服务重启后会重新读取环境变量的配置。如需持久化日志级别设置,请修改环境变量。
日志输出格式
开发环境
开发环境下,日志使用 pino-pretty 格式化输出,具有以下特点:
- 带颜色高亮
- 时间戳转换为本地时间格式
- 隐藏 pid 和 hostname 字段
生产环境
生产环境下,日志使用 JSON 格式输出,便于日志收集和分析工具处理:
{"level":"info","time":"2025-01-15T10:30:00.000Z","msg":"供应商选择完成","providerId":1,"providerName":"claude-primary"}
常见问题
Q: 修改日志级别需要重启服务吗?
不需要。日志级别修改后立即生效,系统会使用 Pino 的运行时级别切换功能,无需重启任何进程。
Q: 日志级别修改后为什么没有效果?
请检查以下几点:
- 确认保存成功(界面显示成功提示)
- 如果有多个服务实例,日志级别只会在当前实例生效(每个实例需单独设置)
- 检查日志输出是否被其他工具(如日志收集器)过滤
Q: 如何在容器环境中持久化日志级别?
通过环境变量设置:
# docker-compose.yml
services:
app:
environment:
- LOG_LEVEL=info
Q: Debug 和 Trace 级别有什么区别?
Debug:输出调试信息,如请求参数、响应结果、中间计算过程等Trace:输出极详细的追踪信息,包括每个函数调用、数据流转等细节
一般排查问题使用 Debug 级别即可,Trace 仅在需要深入追踪程序执行流程时使用。
