排查OpenClaw异常必须读取ERROR级错误日志,可通过CLI命令openclaw logs --level error实时查看,或定位logs/error.log文件;自定义路径需查配置项log.file;JSON格式日志可用jq精准筛选。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

排查OpenClaw运行异常、AI响应失败或工具调用中断时,必须定位并读取错误日志——它记录了ERROR级别异常、堆栈追踪、触发模块及时间戳,是唯一可信赖的原始依据。
用CLI命令实时查看错误日志
这是最直接高效的方式,无需手动找文件路径,直接订阅当前gateway进程的错误流。
在终端中执行:openclaw logs --level error
该命令仅输出level为ERROR的日志条目,避免INFO级信息干扰判断。若需同时查看WARN级预警,改用--level warn即可。
【注意】此命令要求gateway服务正在运行,否则会报错退出。
定位并打开本地error.log文件
本地源码或CLI部署时,OpenClaw默认将ERROR级异常写入固定路径的独立文件,便于离线分析和长期归档。
第一步:确认项目根目录下是否存在logs/子目录
第二步:进入该目录,检查error.log文件是否持续更新:ls -la logs/error.log
第三步:用tail -f logs/error.log实时跟踪新增错误;若只需看最近100行,执行tail -n 100 logs/error.log
常见错误行以[ERR]开头,后跟模块名(如Gateway)和具体异常描述,例如[ERR] Skill 'web_search' returned empty result after 3 retries——这说明外部API不可达或配额耗尽。
从配置文件反查日志路径
当默认路径失效或被自定义覆盖时,必须通过配置源头确认真实路径。
方法一:执行openclaw config get log.file,直接读取当前生效的log.file配置项
方法二:打开~/.openclaw/openclaw.json(或openclaw.yaml),查找logging.file字段值
方法三:若启动时用了--log-file /var/log/openclaw/prod.log参数,则日志必然写入该路径,【务必检查该路径是否存在且当前用户有读权限】
用JSON格式+jq精准提取错误事件
当需要从海量日志中筛选特定错误类型、关联会话ID或工具名称时,结构化解析不可替代。
① 执行openclaw logs --json获取标准JSONL格式日志流
② 筛选所有ERROR级别日志:openclaw logs --json | jq 'select(.level == "ERROR")'
③ 进一步过滤含“Permission denied”的错误:openclaw logs --json | jq 'select(.message | contains("Permission denied"))'
④ 若已知会话ID为abc123,可定位其全部错误:openclaw logs --json | jq 'select(.session_id == "abc123" and .level == "ERROR")'
这一步操作起来很简单,直接把命令粘贴进终端回车就行,jq会自动格式化输出,每行一个完整JSON对象。


















