Skip to content

Latest commit

 

History

History
84 lines (63 loc) · 7.01 KB

logging.md

File metadata and controls

84 lines (63 loc) · 7.01 KB

运行日志与请求账本

控制台

每条日志一行,依次为时间、级别、来源、请求编号与消息:

10-14 18:03:18.452 INFO  suleimanhauwau011-gmail-com     账号就绪 | 层级=pro | 模型=12 | 窗口=1048576 | 耗时=1.6s
10-14 18:05:02.117 INFO  request                         #3f9a1c 请求开始 | chat | gemini-3.8-flash | 流式=是 | 消息=3
10-14 18:05:06.645 INFO  request                         #3f9a1c 请求完成 | 200 | gemini-3.8-flash | 4.528s | 输入 11 · 回复 92 | 20.3 tokens/s | 思考强度=low
  • 来源为 service(服务)、request(请求)或账号 ID,账号 ID 按最长的一个对齐
  • 请求编号是请求 ID 去掉 req_ 后的前 6 位,完整 ID 在响应头 X-Request-ID 与管理端中
  • 消息为 阶段 | 键=值 | ...,原因等多行内容缩进写在下一行
  • 输出到终端时按级别、来源与 HTTP 状态着色,设置环境变量 NO_COLOR 或输出重定向到文件时不着色
  • LOG_FORMAT=json 时每行一个 JSON 对象,字段为 time、level、msg、event、source,请求事件另有 request

LOG_LEVEL 取 debug、info、warn、error,默认 info,可在管理端设置页即时修改。debug 另外输出每次上游 RPC 的名称、状态与耗时,非生成接口的访问,以及 Cookie 轮换结果。

服务与账号

消息 含义
Gemini-Web2API 启动、配置 版本、Go 与系统,监听地址、认证路径、账号数、代理、是否设置 API key、历史记录与日志级别
服务已启动 开始接受请求,同时给出管理端地址;账号在其后并行初始化
账号就绪、账号初始化失败 每个账号的层级、模型数、上下文窗口与耗时,或失败原因;失败的账号按 ACCOUNT_COOLDOWN 间隔继续初始化
账号初始化完成 首轮初始化后各状态的账号数、访客会话状态与耗时
没有账号 认证目录中没有账号;访客会话就绪时只提供访客会话可用的模型,否则生成接口返回 503;在管理端导入或运行 setup 后可用
没有可用账号 全部账号都未就绪;访客会话就绪时只提供访客会话可用的模型,否则生成接口返回 503
访客会话就绪、访客会话初始化失败、访客会话重读失败 来源为 guest 的未登录会话的模型数与耗时,或失败原因;初始化失败时按 ACCOUNT_COOLDOWN 间隔重试,就绪后每 10 分钟重读首页与模型目录
账号恢复就绪 初始化失败的账号在重试中就绪
账号目录变化 账号约每 10 分钟重读层级与模型目录,层级或模型增减时列出变化
账号认证续签、账号认证续签完成、账号会话失效 登录态失效时的续签过程
已同意服务条款、读取服务条款版本失败,按版本 0 同意 模型目录显示账号待同意服务条款时,按官网流程同意的条款版本
账号不可用 Cookie 轮换重读模型目录时账号状态码显示账号受限,带原因与该账号的官网处理入口;下一轮轮换再读
模型冷却、账号冷却、账号待认证 账号或账号内的单个模型移出调度,带结束时间与原因代码
网络错误,账号不冷却 连接、TLS 或代理错误,账号保持可调度
已通知上游停止生成 客户端中途断开或生成流长时间无进展时,向官网发送停止请求
设置已保存 管理端保存设置,列出修改的配置项
服务停止、服务已停止 收到停止信号时的活动请求数,最多等待 10 秒后结束

请求

生成请求从开始到结束输出以下阶段:

消息 含义
请求开始 协议、模型、是否流式、消息数与工具数
账号开始处理 选中的账号与实际模型,排队时附排队时长
附件上传完成 附件数量、大小与上传耗时
收到首个输出 首个正文、思考、代码或媒体事件及等待时长
账号切换 尚未输出时上游失败,换账号重试,下一行为原因
后台生成轮询 Deep Research 等后台生成的轮询次数与已等待时间
请求完成 状态码、模型、耗时、输入、思考、回复 token、生成速度与按账号模型目录选定的思考强度
请求失败 状态码、模型与耗时,下一行为原因
请求取消 客户端断开或管理端取消时所处的阶段,状态记为 499

请求失败 的状态码低于 500(含 429)时为 WARN,500 及以上为 ERROR;请求取消 为 WARN。

请求在同一阶段停留 15 秒没有进展时写一条等待日志,之后每 60 秒重复一次;请求准备等待 之后收到响应头时写 请求准备结束,附等待时长与状态码,事件流停顿 之后收到新事件时写 事件流恢复:

消息 含义
等待可用账号 所有可用账号的请求槽都被占用
请求准备等待 上传附件或发送生成请求
上游首事件等待 已收到响应头,尚未收到首个事件;附上游心跳数与已读取字节
事件流停顿 已开始输出后长时间没有新事件;附最近事件、心跳数与已读取字节

非生成接口只在失败时记录:鉴权失败(OpenAI 与 Anthropic 为 401,Gemini 为 400 或 403)、未知路由(404)与 请求被拒绝(其他 4xx、5xx)。

请求账本

生成请求结束后写入 data/requests.db(SQLite),记录时间、协议、路径、模型、实际模型、账号、状态、耗时、首事件时间、排队时间、token 用量、工具调用数、错误与每次换号的尝试。记录保留 90 天,另按小时与本地日汇总。管理端用量页按时间范围、模型、账号、协议与结果统计请求数、成功率、延迟分位、token 与估算费用,并可导出 CSV。

估算费用按 Gemini API 付费层 Standard 的当前单价计算,输入超过 200,000 token 时按长上下文单价计算;没有对应单价的模型与工具不计费用。

管理端用量页把范围内的记录导出为 CSV,列为 time、id、response_id、protocol、path、model、provider_model、account、status、state、duration_ms、first_event_ms、queue_ms、input_tokens、reasoning_tokens、reply_tokens、total_tokens、tool_calls、error、attempts。

REQUEST_BODY_LOG=true 时另保存最近 1000 条请求与响应正文,每段最多 64 KiB,在管理端请求详情中查看。

日志文件

LOG_FILE=true(默认)时控制台的每条日志同时以同一格式、不带颜色写入数据目录下的 data/logs/gemini-web2api.log,命令行版、Docker 与桌面版相同。单个文件 10 MB 轮转,轮转文件名带本地时间,目录总量超过 LOG_MAX_TOTAL_MB(默认 500,不小于 20)时删除最旧的文件。两项在管理端设置页保存后立即生效。