Spaces:
Runtime error
Runtime error
| # 日志控制指南 | |
| 本文档介绍如何控制项目的日志输出详细程度和行为。 | |
| ## 日志系统概述 | |
| 项目包含两个主要的日志系统: | |
| 1. **启动器日志** (`launch_camoufox.py`) | |
| 2. **主服务器日志** (`server.py`) | |
| ## 启动器日志控制 | |
| ### 日志文件位置 | |
| - 文件路径: `logs/launch_app.log` | |
| - 日志级别: 通常为 `INFO` | |
| - 内容: 启动和协调过程,以及内部启动的 Camoufox 进程的输出 | |
| ### 配置方式 | |
| 启动器的日志级别在脚本内部通过 `setup_launcher_logging(log_level=logging.INFO)` 设置。 | |
| ## 主服务器日志控制 | |
| ### 日志文件位置 | |
| - 文件路径: `logs/app.log` | |
| - 配置模块: `logging_utils/setup.py` | |
| - 内容: FastAPI 服务器详细运行日志 | |
| ### 环境变量控制 | |
| 主服务器日志主要通过**环境变量**控制,这些环境变量由 `launch_camoufox.py` 在启动主服务器之前设置: | |
| #### SERVER_LOG_LEVEL | |
| 控制主服务器日志记录器 (`AIStudioProxyServer`) 的级别。 | |
| - **默认值**: `INFO` | |
| - **可选值**: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` | |
| **使用示例**: | |
| ```bash | |
| # Linux/macOS | |
| export SERVER_LOG_LEVEL=DEBUG | |
| python launch_camoufox.py --headless | |
| # Windows (cmd) | |
| set SERVER_LOG_LEVEL=DEBUG | |
| python launch_camoufox.py --headless | |
| # Windows (PowerShell) | |
| $env:SERVER_LOG_LEVEL="DEBUG" | |
| python launch_camoufox.py --headless | |
| ``` | |
| #### SERVER_REDIRECT_PRINT | |
| 控制主服务器内部的 `print()` 和 `input()` 行为。 | |
| - **`'true'`**: `print()` 输出重定向到日志系统,`input()` 可能无响应(无头模式默认) | |
| - **`'false'`**: `print()` 输出到原始终端,`input()` 在终端等待用户输入(调试模式默认) | |
| #### DEBUG_LOGS_ENABLED | |
| 控制主服务器内部特定功能的详细调试日志点是否激活。 | |
| - **默认值**: `false` | |
| - **可选值**: `true`, `false` | |
| **使用示例**: | |
| ```bash | |
| # Linux/macOS | |
| export DEBUG_LOGS_ENABLED=true | |
| python launch_camoufox.py --headless | |
| # Windows (cmd) | |
| set DEBUG_LOGS_ENABLED=true | |
| python launch_camoufox.py --headless | |
| # Windows (PowerShell) | |
| $env:DEBUG_LOGS_ENABLED="true" | |
| python launch_camoufox.py --headless | |
| ``` | |
| #### TRACE_LOGS_ENABLED | |
| 控制更深层次的跟踪日志。 | |
| - **默认值**: `false` | |
| - **可选值**: `true`, `false` | |
| - **注意**: 通常不需要启用,除非进行深度调试 | |
| **使用示例**: | |
| ```bash | |
| # Linux/macOS | |
| export TRACE_LOGS_ENABLED=true | |
| python launch_camoufox.py --headless | |
| # Windows (cmd) | |
| set TRACE_LOGS_ENABLED=true | |
| python launch_camoufox.py --headless | |
| # Windows (PowerShell) | |
| $env:TRACE_LOGS_ENABLED="true" | |
| python launch_camoufox.py --headless | |
| ``` | |
| ## 组合使用示例 | |
| ### 启用详细调试日志 | |
| ```bash | |
| # Linux/macOS | |
| export SERVER_LOG_LEVEL=DEBUG | |
| export DEBUG_LOGS_ENABLED=true | |
| python launch_camoufox.py --headless --server-port 2048 | |
| # Windows (PowerShell) | |
| $env:SERVER_LOG_LEVEL="DEBUG" | |
| $env:DEBUG_LOGS_ENABLED="true" | |
| python launch_camoufox.py --headless --server-port 2048 | |
| ``` | |
| ### 启用最详细的跟踪日志 | |
| ```bash | |
| # Linux/macOS | |
| export SERVER_LOG_LEVEL=DEBUG | |
| export DEBUG_LOGS_ENABLED=true | |
| export TRACE_LOGS_ENABLED=true | |
| python launch_camoufox.py --headless | |
| # Windows (PowerShell) | |
| $env:SERVER_LOG_LEVEL="DEBUG" | |
| $env:DEBUG_LOGS_ENABLED="true" | |
| $env:TRACE_LOGS_ENABLED="true" | |
| python launch_camoufox.py --headless | |
| ``` | |
| ## 日志查看方式 | |
| ### 文件日志 | |
| - `logs/app.log`: FastAPI 服务器详细日志 | |
| - `logs/launch_app.log`: 启动器日志 | |
| - 文件日志通常包含比终端或 Web UI 更详细的信息 | |
| ### Web UI 日志 | |
| - Web UI 右侧边栏实时显示来自主服务器的 `INFO` 及以上级别的日志 | |
| - 通过 WebSocket (`/ws/logs`) 连接获取实时日志 | |
| - 包含日志级别、时间戳和消息内容 | |
| - 提供清理日志的按钮 | |
| ### 终端日志 | |
| - 调试模式 (`--debug`) 下,日志会直接输出到启动的终端 | |
| - 无头模式下,终端日志较少,主要信息在日志文件中 | |
| ## 日志级别说明 | |
| ### DEBUG | |
| - 最详细的日志信息 | |
| - 包含函数调用、变量值、执行流程等 | |
| - 用于深度调试和问题排查 | |
| ### INFO | |
| - 一般信息日志 | |
| - 包含重要的操作和状态变化 | |
| - 日常运行的默认级别 | |
| ### WARNING | |
| - 警告信息 | |
| - 表示可能的问题或异常情况 | |
| - 不影响正常功能但需要注意 | |
| ### ERROR | |
| - 错误信息 | |
| - 表示功能异常或失败 | |
| - 需要立即关注和处理 | |
| ### CRITICAL | |
| - 严重错误 | |
| - 表示系统级别的严重问题 | |
| - 可能导致服务不可用 | |
| ## 性能考虑 | |
| ### 日志级别对性能的影响 | |
| - **DEBUG 级别**: 会产生大量日志,可能影响性能,仅在调试时使用 | |
| - **INFO 级别**: 平衡了信息量和性能,适合日常运行 | |
| - **WARNING 及以上**: 日志量最少,性能影响最小 | |
| ### 日志文件大小管理 | |
| - 日志文件会随时间增长,建议定期清理或轮转 | |
| - 可以手动删除旧的日志文件 | |
| - 考虑使用系统的日志轮转工具(如 logrotate) | |
| ## 故障排除 | |
| ### 日志不显示 | |
| 1. 检查环境变量是否正确设置 | |
| 2. 确认日志文件路径是否可写 | |
| 3. 检查 Web UI 的 WebSocket 连接是否正常 | |
| ### 日志过多 | |
| 1. 降低日志级别(如从 DEBUG 改为 INFO) | |
| 2. 禁用 DEBUG_LOGS_ENABLED 和 TRACE_LOGS_ENABLED | |
| 3. 定期清理日志文件 | |
| ### 日志缺失重要信息 | |
| 1. 提高日志级别(如从 WARNING 改为 INFO 或 DEBUG) | |
| 2. 启用 DEBUG_LOGS_ENABLED 获取更多调试信息 | |
| 3. 检查日志文件而不仅仅是终端输出 | |
| ## 最佳实践 | |
| ### 日常运行 | |
| ```bash | |
| # 推荐的日常运行配置 | |
| export SERVER_LOG_LEVEL=INFO | |
| python launch_camoufox.py --headless | |
| ``` | |
| ### 调试问题 | |
| ```bash | |
| # 推荐的调试配置 | |
| export SERVER_LOG_LEVEL=DEBUG | |
| export DEBUG_LOGS_ENABLED=true | |
| python launch_camoufox.py --debug | |
| ``` | |
| ### 生产环境 | |
| ```bash | |
| # 推荐的生产环境配置 | |
| export SERVER_LOG_LEVEL=WARNING | |
| python launch_camoufox.py --headless | |
| ``` | |
| ## 下一步 | |
| 日志控制配置完成后,请参考: | |
| - [故障排除指南](troubleshooting.md) | |
| - [高级配置指南](advanced-configuration.md) | |