File size: 5,751 Bytes
1766992
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# 启动日志优化说明

## 优化前 vs 优化后

### 优化前(调试模式)
启动时会显示大量 GIN 框架的调试信息:
```
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /health                   --> main.setupRoutes.func1 (5 handlers)
[GIN-debug] GET    /                         --> cursor2api-go/handlers.(*Handler).ServeDocs-fm (5 handlers)
[GIN-debug] GET    /v1/models                --> cursor2api-go/handlers.(*Handler).ListModels-fm (6 handlers)
[GIN-debug] POST   /v1/chat/completions      --> cursor2api-go/handlers.(*Handler).ChatCompletions-fm (6 handlers)
[GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (5 handlers)
[GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (5 handlers)
INFO[0000] Starting Cursor2API server on port 8002
```

### 优化后(简洁模式,默认)
启动时只显示必要的服务信息:
```
╔══════════════════════════════════════════════════════════════╗
║                      Cursor2API Server                       ║
╚══════════════════════════════════════════════════════════════╝

🚀 服务地址:  http://localhost:8002
📚 API 文档:  http://localhost:8002/
💊 健康检查:  http://localhost:8002/health
🔑 API 密钥:  0000
🤖 支持模型:  仅 `claude-sonnet-4.6` 与 `claude-sonnet-4.6-thinking`(thinking 为派生公开模型)

✨ 服务已启动,按 Ctrl+C 停止
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

## 主要改进

### 1. 默认使用简洁模式
- 修改 `.env.example``DEBUG=false`
- 生产环境默认不显示调试信息
- 启动输出更清爽、专业

### 2. 美观的启动横幅
- 使用 Unicode 框线字符绘制横幅
- 使用 Emoji 图标增强可读性
- 清晰展示关键信息:
  - 🚀 服务地址
  - 📚 API 文档
  - 💊 健康检查
  - 🔑 API 密钥
  - 🤖 支持的模型

### 3. 条件性日志输出
- 只在 `DEBUG=true` 时显示详细日志
- GIN 的 Logger 中间件仅在调试模式启用
- 减少生产环境的日志噪音

### 4. 智能模型显示
- 模型数量 > 3 时,只显示第一个和总数
- 避免启动信息过长
- 保持输出简洁

## 代码改进

### main.go
```go
// 设置日志级别和 GIN 模式
if cfg.Debug {
    logrus.SetLevel(logrus.DebugLevel)
    gin.SetMode(gin.DebugMode)
} else {
    logrus.SetLevel(logrus.InfoLevel)
    gin.SetMode(gin.ReleaseMode)
}

// 只在 Debug 模式下启用 GIN 的日志
if cfg.Debug {
    router.Use(gin.Logger())
}

// 打印启动信息
printStartupBanner(cfg)
```

### printStartupBanner 函数
```go
func printStartupBanner(cfg *config.Config) {
    banner := `
╔══════════════════════════════════════════════════════════════╗
║                      Cursor2API Server                       ║
╚══════════════════════════════════════════════════════════════╝
`
    fmt.Println(banner)
    
    fmt.Printf("🚀 服务地址:  http://localhost:%d\n", cfg.Port)
    fmt.Printf("📚 API 文档:  http://localhost:%d/\n", cfg.Port)
    fmt.Printf("💊 健康检查:  http://localhost:%d/health\n", cfg.Port)
    fmt.Printf("🔑 API 密钥:  %s\n", cfg.APIKey)
    
    models := cfg.GetModels()
    if len(models) > 3 {
        fmt.Printf("🤖 支持模型:  %s 等 %d 个模型\n", models[0], len(models))
    } else {
        fmt.Printf("🤖 支持模型:  %v\n", models)
    }
    
    if cfg.Debug {
        fmt.Println("🐛 调试模式:  已启用")
    }
    
    fmt.Println("\n✨ 服务已启动,按 Ctrl+C 停止")
    fmt.Println("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
}
```

## 使用方法

### 简洁模式(默认)
```bash
./cursor2api-go
```

或者使用启动脚本:
```bash
./start.sh
```

### 调试模式

**方式 1**: 修改 `.env` 文件
```bash
DEBUG=true
```

**方式 2**: 临时启用
```bash
DEBUG=true ./cursor2api-go
```

### 调试模式会显示
- ✅ 详细的 GIN 路由信息
- ✅ 每个请求的详细日志
- ✅ x-is-human token 信息
- ✅ 浏览器指纹配置
- ✅ 重试和错误处理详情

## 优势

1. **更专业** - 简洁的输出适合生产环境
2. **更清晰** - 关键信息一目了然
3. **更美观** - 使用 Unicode 和 Emoji 增强视觉效果
4. **更灵活** - 可以随时切换调试模式
5. **更友好** - 新用户更容易理解服务状态

## 兼容性

- ✅ 完全向后兼容
- ✅ 不影响现有功能
- ✅ 可以随时切换模式
- ✅ 支持所有平台(Windows/macOS/Linux)

## 注意事项

1. **首次使用**: 需要更新 `.env` 文件(或删除后重新生成)
2. **调试问题**: 遇到问题时,建议启用 `DEBUG=true` 查看详细日志
3. **生产部署**: 建议使用 `DEBUG=false` 以获得最佳性能和简洁输出