建议先执行codex --version确认CLI已经正确安装且PATH环境变量已生效,再运行codex doctor检查日志系统是否可用(只有显示✅才适合继续排查);Mac/Linux 可使用tail -f $(ls -t session-*.log | head -n 1)实时查看最新错误日志,Windows 则可通过Get-Content结合Select-String按关键词筛选报错内容,跨平台场景下还可以借助export CODEX_LOG_LEVEL=debug或PowerShell对应命令开启调试日志模式。

如果你想在终端中直接查看 Codex 运行过程中的真实报错信息,而不是等程序闪退后再去手动翻日志文件夹,就需要绕过图形界面的信息拦截,通过命令行实时抓取日志输出。这种方法尤其适合 CLI 模式执行失败、API 调用中断、MCP 连接超时、任务异常退出等常见故障排查场景。
查日志前先确认Codex是否真在运行
先输入codex --version,如果终端正常返回版本号,说明 CLI 已成功安装;如果提示command not found,则需要优先检查并修复 PATH 配置,否则后续所有查看日志的命令都无法生效。
接着执行codex doctor,重点查看输出结果里的“Runtime”和“Log”两项状态。只有当它们显示为✅或“OK”时,才表示日志系统已经准备完成;如果出现⚠️或❌,通常意味着配置损坏、目录缺失或路径权限异常,建议先修复这些基础问题,再继续进行日志排查。
Mac/Linux:三步直取最新错误流
第一步:进入日志目录
执行cd ~/.codex/logs,注意这个路径中的【.codex是隐藏目录,ls默认不显示,必须手动cd进去】。
第二步:找最新日志文件
运行ls -t session-*.log | head -n 1,该命令会按照修改时间从新到旧列出所有会话日志,第一行通常就是当前会话或最近一次异常退出对应的日志文件名。
第三步:实时追踪错误输出
使用tail -f $(ls -t session-*.log | head -n 1)开始监听。这样一来,只要 Codex 再次报错,错误堆栈、异常提示和关键输出就会立即滚动显示在终端中,无需等任务结束后再手动打开日志文件查看。
Windows:用PowerShell精准定位
方法一:先快速定位最近一次报错
打开 PowerShell,直接执行下面这条命令:Get-ChildItem "$env:USERPROFILE.codexlogssession-*.log" | Sort-Object LastWriteTime -Descending | Select-Object -First 1 | Get-Content
方法二:用关键词过滤,直接把故障点揪出来
仍然在同一个窗口中,继续在上一段命令后接上管道:| Select-String -Pattern "error", "fail", "panic", "exception" -CaseSensitive
这样做的优势非常明显:大量正常日志可以先忽略,终端只会筛选出包含错误标记的关键内容。像panic: runtime error: invalid memory address这类信息,往往就是排查问题时最需要优先关注的致命线索。
【注意】如果 Windows 返回“找不到路径”,请先确认 Codex 是否曾以非管理员身份成功运行过——如果初始化没有完成,.logs 文件夹通常不会自动创建,此时建议先执行一次codex login来触发基础环境生成】
跨平台通用:启用Debug级别日志
在执行任何 Codex 命令之前,先设置环境变量:export CODEX_LOG_LEVEL=debug(Mac/Linux)或$env:CODEX_LOG_LEVEL="debug"(PowerShell)。
然后再运行你原本要执行的命令,例如:codex run --file src/main.py。
启用后,底层调用过程、HTTP 请求头、MCP 响应内容、模型 token 消耗等调试信息都会一并写入日志。这样错误信息就不再孤立隐藏,而会结合上下文完整呈现——例如你可能会看到[MCP] POST http://localhost:3000/v1/execute timeout after 8s,这类提示相比单纯的“connection refused”更容易帮助你快速定位真实原因。
