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)