Spaces:
Runtime error
Runtime error
日志控制指南
本文档介绍如何控制项目的日志输出详细程度和行为。
日志系统概述
项目包含两个主要的日志系统:
- 启动器日志 (
launch_camoufox.py) - 主服务器日志 (
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
使用示例:
# 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
使用示例:
# 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 - 注意: 通常不需要启用,除非进行深度调试
使用示例:
# 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
组合使用示例
启用详细调试日志
# 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
启用最详细的跟踪日志
# 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)
故障排除
日志不显示
- 检查环境变量是否正确设置
- 确认日志文件路径是否可写
- 检查 Web UI 的 WebSocket 连接是否正常
日志过多
- 降低日志级别(如从 DEBUG 改为 INFO)
- 禁用 DEBUG_LOGS_ENABLED 和 TRACE_LOGS_ENABLED
- 定期清理日志文件
日志缺失重要信息
- 提高日志级别(如从 WARNING 改为 INFO 或 DEBUG)
- 启用 DEBUG_LOGS_ENABLED 获取更多调试信息
- 检查日志文件而不仅仅是终端输出
最佳实践
日常运行
# 推荐的日常运行配置
export SERVER_LOG_LEVEL=INFO
python launch_camoufox.py --headless
调试问题
# 推荐的调试配置
export SERVER_LOG_LEVEL=DEBUG
export DEBUG_LOGS_ENABLED=true
python launch_camoufox.py --debug
生产环境
# 推荐的生产环境配置
export SERVER_LOG_LEVEL=WARNING
python launch_camoufox.py --headless
下一步
日志控制配置完成后,请参考: