Spaces:
Runtime error
Runtime error
File size: 6,259 Bytes
927965d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 |
# 日志控制指南
本文档介绍如何控制项目的日志输出详细程度和行为。
## 日志系统概述
项目包含两个主要的日志系统:
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)
|