导出日志
导出日志是把 TWS / IB Gateway 本地保存的日志解密并保存成可阅读文件。它和“上传日志”不同:上传是发给 IBKR 支持,导出是保存到用户电脑,方便你自己、团队或技术支持排查。
较新的 TWS / IB Gateway 会把本地日志加密保存,所以直接打开日志目录里的 .ibgzenc 文件通常看不懂。要阅读日志内容,应从客户端菜单里导出。
适合导出的场景
Section titled “适合导出的场景”适合导出日志的情况:
- 你想自己查看 API 请求和回调顺序。
- 你要把日志片段和 Python / Java / C# 程序输出对照。
- 你需要发给团队成员排查,但不想直接发送整个日志目录。
- IBKR 支持要求你提供本地导出的明文日志。
- 问题发生后准备清理旧日志,删除前先保存证据。
如果问题还没有复现,先不要急着导出。先开启 API message log 和合适的日志级别,复现问题,再导出当天日志,这样文件里才有关键内容。
TWS 导出入口
Section titled “TWS 导出入口”TWS 的官方入口通常是:
- 打开并登录 TWS。
- 进入顶部菜单
Help。 - 选择
Troubleshooting。 - 进入
Diagnostics。 - 根据问题类型选择
API Logs或TWS Logs。 - 点击
Export Today Logs...。 - 选择保存目录,导出明文日志文件。
如果你排查的是代码和 Socket 通信,优先导出 API Logs。如果问题是 TWS 登录、平台卡住、界面异常、数据农场连接、整体网络状态,通常还需要导出 TWS Logs。
IB Gateway 导出入口
Section titled “IB Gateway 导出入口”IB Gateway 的界面更简化。官方说明中,API Logs 和 Gateway Logs 通常可以直接从 File 菜单访问:
- 打开并登录 IB Gateway。
- 进入
File菜单。 - 选择
API Logs或Gateway Logs。 - 点击
Export Today Logs...。 - 选择保存目录。
服务器上运行 IB Gateway 时,要确保桌面会话有权限弹出保存窗口。如果是远程桌面、VNC、云服务器图形环境,保存目录建议选一个你能明确找到的位置。
选择哪种日志
Section titled “选择哪种日志”不同日志适合不同问题,不要一上来全部导出:
| 日志类型 | 适合排查 |
|---|---|
API Logs | API 请求、回调、错误码、clientId、reqId、orderId |
TWS Logs | TWS 登录、界面、行情农场、连接状态、平台异常 |
Gateway Logs | IB Gateway 登录、连接、服务端运行、平台级异常 |
新手排查 API 问题时,可以先导出 API Logs。如果 API 日志里只能看到请求发出,但没有进一步线索,再补充 TWS / Gateway 日志。
导出前建议确认:
- 问题已经在当天复现。
- 你知道问题发生的大概时间。
- API message log 已经在问题发生前开启。
- 日志等级已按排查需要设置。
- 你的 API 程序使用了固定
clientId。 - 保存目录不是项目源码目录,也不是会被自动同步到公开仓库的位置。
如果问题发生在前一天,Export Today Logs... 可能导不出那一段。此时不要删除旧日志,先回到上传日志或日志目录章节,确认是否还保留了前一天日志,再按支持人员建议处理。
导出后的文件怎么命名
Section titled “导出后的文件怎么命名”导出后建议自己改成容易识别的文件名,例如:
2026-06-13_tws_api_client-910_historical-data-error.log2026-06-13_ibgateway_api_client-910_order-reject.log文件名里可以保留日期、客户端类型、clientId 和问题类型。不要把完整账号、用户名、真实姓名、策略名或敏感订单信息写进文件名。
导出的日志可能包含:
- 账号相关标识。
- 合约、交易所、行情请求。
- 订单编号、订单状态和错误信息。
- 本地路径、客户端版本和连接信息。
- 你程序发送的部分请求参数。
因此导出日志只应发给可信对象。公开提问、写博客、发社群或提交给非官方第三方时,应先删去账号、订单号、资产、私有路径和策略细节。
直接打开 .ibgzenc 为什么看不懂
Section titled “直接打开 .ibgzenc 为什么看不懂”.ibgzenc 是本地加密日志,不适合直接阅读。应该在 TWS / IB Gateway 中通过日志菜单导出,导出后才会得到可阅读的明文文件。
为什么导出的日志里没有 API 请求
Section titled “为什么导出的日志里没有 API 请求”常见原因是没有在问题发生前启用 API message log,或者导出的不是 API Logs。也可能是你看的 clientId 不对,或者问题发生时程序并没有真正连接成功。
导出当天日志够不够
Section titled “导出当天日志够不够”如果问题发生在当天,通常先导出当天日志即可。如果问题发生在前几天,要确认旧日志仍然存在,并按支持人员要求选择包含历史日志的上传或导出方式。
导出日志能代替错误输出吗
Section titled “导出日志能代替错误输出吗”不能。排查 API 问题时,导出日志、程序控制台输出、错误回调、请求参数和 TWS 界面状态应该互相印证。日志能说明底层通信,但不一定能直接解释你的业务代码为什么这样处理。