【Bug已解决】openclaw log file too large / Disk space exhausted by logs — OpenClaw 日志文件过大解决方案
【Bug已解决】openclaw: log file too large / Disk space exhausted by logs — OpenClaw 日志文件过大解决方案1. 问题描述OpenClaw 的日志文件占用过多磁盘空间# 日志文件过大 $ ls -lh ~/.openclaw/logs/ -rw-r--r-- 1 user user 5.2G debug.log -rw-r--r-- 1 user user 3.8G session.log # 或磁盘空间不足 $ openclaw task Error: No space left on device Cannot write to ~/.openclaw/logs/debug.log # 或日志导致系统卡顿 $ openclaw task # 系统响应慢因为日志文件太大 # 或日志轮转未配置 $ ls -lh ~/.openclaw/logs/ # 只有一个巨大的日志文件没有轮转这个问题在以下场景中特别常见日志级别过高debug日志轮转未配置长时间运行大量请求日志未清理磁盘空间不足2. 原因分析原因分类表原因分类具体表现占比日志级别高debug约 35%无轮转单文件约 25%长时间运行累积约 15%大量请求频繁约 15%未清理历史日志约 5%磁盘不足小磁盘约 5%3. 解决方案方案一清除日志文件最推荐# 步骤 1检查日志大小 du -sh ~/.openclaw/logs/ # 步骤 2清除旧日志 rm ~/.openclaw/logs/*.log # 或只保留最近的 find ~/.openclaw/logs/ -name *.log -mtime 7 -delete # 步骤 3或截断不删除文件 truncate -s 0 ~/.openclaw/logs/debug.log # 步骤 4验证 du -sh ~/.openclaw/logs/ openclaw task方案二降低日志级别# 步骤 1检查当前日志级别 cat .openclaw/config.json | grep -i log # 步骤 2降低级别 cat .openclaw/config.json EOF { model: claude-sonnet-4-20250514, logLevel: warn } EOF # 步骤 3或环境变量 export OPENCLAW_LOG_LEVELwarn # 步骤 4验证 python3 -m json.tool .openclaw/config.json openclaw task方案三配置日志轮转# 步骤 1使用 logrotate cat /etc/logrotate.d/openclaw EOF ~/.openclaw/logs/*.log { daily rotate 7 compress missingok notifempty size 100M } EOF # 步骤 2手动轮转 logrotate -f /etc/logrotate.d/openclaw # 步骤 3或使用 cron echo 0 0 * * * find ~/.openclaw/logs/ -name *.log -mtime 7 -delete | crontab # 步骤 4验证 ls -lh ~/.openclaw/logs/方案四禁用日志# 步骤 1禁用日志 export OPENCLAW_LOG_ENABLEDfalse # 步骤 2或配置 cat .openclaw/config.json EOF { logLevel: error, logEnabled: false } EOF # 步骤 3永久设置 echo export OPENCLAW_LOG_ENABLEDfalse ~/.bashrc source ~/.bashrc # 步骤 4验证 openclaw task ls -lh ~/.openclaw/logs/方案五使用 --quiet# 步骤 1使用 --quiet 减少输出 openclaw --quiet task # 步骤 2或 --silent openclaw --silent task # 步骤 3CI/CD 中 openclaw --quiet --print task 21 # 步骤 4验证 openclaw --quiet --print hello方案六移动日志到其他磁盘# 步骤 1创建日志目录 mkdir -p /external/logs/openclaw # 步骤 2软链接 mv ~/.openclaw/logs /external/logs/openclaw/logs ln -s /external/logs/openclaw/logs ~/.openclaw/logs # 步骤 3或配置日志路径 cat .openclaw/config.json EOF { logPath: /external/logs/openclaw } EOF # 步骤 4验证 openclaw task ls -lh /external/logs/openclaw/4. 各方案对比总结方案适用场景推荐指数难度方案一清除即时⭐⭐⭐⭐⭐低方案二降级别长期⭐⭐⭐⭐⭐低方案三轮转长期⭐⭐⭐⭐⭐中方案四禁用极端⭐⭐⭐低方案五--quiet临时⭐⭐⭐⭐低方案六移动磁盘⭐⭐⭐中5. 常见问题 FAQ5.1 日志文件在哪里通常在~/.openclaw/logs/目录下。5.2 如何检查日志大小du -sh ~/.openclaw/logs/ ls -lh ~/.openclaw/logs/5.3 如何清除日志rm ~/.openclaw/logs/*.log # 或 truncate -s 0 ~/.openclaw/logs/debug.log5.4 日志级别有哪些errorwarninfodebug。使用warn或error减少日志量。5.5 如何配置日志轮转使用logrotate或cron定期清理旧日志。5.6 如何禁用日志export OPENCLAW_LOG_ENABLEDfalse5.7 --quiet 有什么用减少控制台输出但不影响日志文件。5.8 日志导致磁盘满清除日志 降低级别 配置轮转。5.9 如何自动清理echo 0 0 * * * find ~/.openclaw/logs/ -name *.log -mtime 7 -delete | crontab5.10 排查清单速查表□ 1. du -sh ~/.openclaw/logs/ 检查大小 □ 2. rm *.log 清除日志 □ 3. truncate -s 0 截断 □ 4. logLevel: warn 降低级别 □ 5. OPENCLAW_LOG_LEVELwarn 环境变量 □ 6. logrotate 配置轮转 □ 7. cron 定期清理 □ 8. OPENCLAW_LOG_ENABLEDfalse 禁用 □ 9. --quiet 减少输出 □ 10. logPath 移动到其他磁盘6. 总结根本原因日志过大最常见原因是日志级别过高35%和日志轮转未配置25%最佳实践使用rm ~/.openclaw/logs/*.log清除日志降低级别到warn日志轮转配置logrotate或cron定期清理旧日志降低级别设置logLevel: warn减少日志量最佳实践建议使用OPENCLAW_LOG_LEVELwarnlogrotate 定期清理故障排查流程图flowchart TD A[日志文件过大] -- B[du -sh 检查大小] B -- C[清除日志] C -- D[rm *.log 或 truncate] D -- E[openclaw task 验证] E -- F{磁盘正常?} F --|是| G[降低日志级别] F --|否| H[清除更多文件] H -- C G -- I[logLevel: warn] I -- j[OPENCLAW_LOG_LEVELwarn] j -- K[配置日志轮转] K -- L[logrotate 或 cron] L -- M[定期清理 7 天以上] M -- E E -- N{日志增长慢?} N --|是| O[✅ 问题解决] N --|否| P[禁用日志] P -- Q[OPENCLAW_LOG_ENABLEDfalse] Q -- R[或 logLevel: error] R -- E E -- S{成功?} S --|是| O S --|否| T[移动到其他磁盘] T -- U[logPath: /external/logs] U -- E O -- V[长期: warn 轮转 清理] V -- W[✅ 长期方案]