产品对外名称为 PlotPilot(墨枢)。下文中的
logs/plotpilot.log等为环境变量默认路径里的历史文件名,与运行时配置一致即可。
在 .env 文件中设置:
LOG_LEVEL=INFO # 可选: DEBUG, INFO, WARNING, ERROR, CRITICAL
LOG_FILE=logs/plotpilot.log
LOG_COLOR=auto # auto / always / never
LOG_MAX_BYTES=10485760
LOG_BACKUP_COUNT=5推荐(与根目录 README 一致,端口 8005):
uvicorn interfaces.main:app --host 127.0.0.1 --port 8005 --reload也可直接运行 FastAPI 入口模块(默认 0.0.0.0:8000,与上式端口不同):
python interfaces/main.py如需与前端开发代理一致,请改用 uvicorn 并指定 --port 8005,或修改 interfaces/main.py 末尾 uvicorn.run 的端口。
启动时会看到:
14:30:22 INFO api.main ------------------------------------------------
14:30:22 INFO api.main PlotPilot backend starting - release 1.0.2
14:30:22 INFO api.main Build: build-20260209-1200-c4d2
14:30:22 INFO api.main Log level: INFO
14:30:22 INFO api.main Log file: logs/plotpilot.log
14:30:22 INFO api.main ------------------------------------------------
实时查看日志:
python scripts/tail_logs.py查看最近 100 行:
python scripts/tail_logs.py logs/plotpilot.log 100使用系统命令:
# Windows PowerShell
Get-Content logs/plotpilot.log -Tail 50 -Wait
# Git Bash
tail -f logs/plotpilot.logpython scripts/check_health.py| 级别 | 用途 | 示例 |
|---|---|---|
| DEBUG | 详细调试信息 | 每个循环的处理时间、变量值 |
| INFO | 常规运行信息 | 启动消息、阶段变更、章节完成 |
| WARNING | 警告信息 | 熔断器触发、文风漂移、耗时过长 |
| ERROR | 错误信息 | 处理失败、连续错误 |
| CRITICAL | 严重错误 | 系统崩溃级别错误 |
14:30:22 INFO api.main PlotPilot backend starting - release 1.0.2
14:30:23 INFO api.main FastAPI application started successfully
14:30:23 INFO api.main Registered 87 routes
14:30:25 INFO runtime.daemon_host Autopilot daemon started
14:30:25 INFO runtime.daemon_host Poll interval: 5s
14:30:30 INFO runtime.daemon_host Loop #1: 发现 2 本活跃小说
14:30:30 INFO runtime.writing [novel-123] 开始写作 (第 2 幕)
14:30:30 INFO runtime.writing [novel-123] 开始写第 15 章:主角突破境界...
14:30:45 INFO runtime.writing [novel-123] 节拍 1/5 完成: 523 字
14:31:51 INFO runtime.writing [novel-123] 第 15 章完成:2525 字 (共 15/50 章)
14:32:15 ERROR runtime.daemon_host [novel-456] 处理失败: Connection timeout
14:32:15 WARN runtime.daemon_host [novel-456] 连续失败 1/3 次
14:32:25 ERROR runtime.daemon_host [novel-456] 连续失败 3 次,挂起等待急救
文件日志会使用更适合检索的格式,包含毫秒、进程号、模块名与代码位置,例如:
2026-04-06 14:32:15.128 ERROR pid=18420 runtime.daemon_host daemon_host.py:606 [novel-456] 处理失败: Connection timeout
# Windows PowerShell
Select-String -Path logs/plotpilot.log -Pattern "novel-123"
# Git Bash
grep "novel-123" logs/plotpilot.loggrep -E "ERROR|WARNING" logs/plotpilot.loggrep "章完成" logs/plotpilot.log | wc -l- 生产环境: 使用
LOG_LEVEL=INFO,定期检查 ERROR 和 WARNING - 开发环境: 使用
LOG_LEVEL=DEBUG,查看详细执行流程 - 性能调优: 关注 "耗时过长" 警告
- 稳定性监控: 关注熔断器触发、连续失败次数