mirror of
https://github.com/musistudio/claude-code-router.git
synced 2026-01-30 06:12:06 +00:00
191 lines
4.0 KiB
Markdown
191 lines
4.0 KiB
Markdown
# 日志 API
|
||
|
||
## GET /api/logs/files
|
||
|
||
获取所有可用的日志文件列表。
|
||
|
||
### 请求示例
|
||
|
||
```bash
|
||
curl http://localhost:3456/api/logs/files \
|
||
-H "x-api-key: your-api-key"
|
||
```
|
||
|
||
### 响应示例
|
||
|
||
```json
|
||
[
|
||
{
|
||
"name": "ccr-20241226143022.log",
|
||
"path": "/home/user/.claude-code-router/logs/ccr-20241226143022.log",
|
||
"size": 1024000,
|
||
"lastModified": "2024-12-26T14:30:22.000Z"
|
||
},
|
||
{
|
||
"name": "ccr-20241226143021.log",
|
||
"path": "/home/user/.claude-code-router/logs/ccr-20241226143021.log",
|
||
"size": 980000,
|
||
"lastModified": "2024-12-26T14:30:21.000Z"
|
||
}
|
||
]
|
||
```
|
||
|
||
### 字段说明
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `name` | string | 文件名 |
|
||
| `path` | string | 完整文件路径 |
|
||
| `size` | integer | 文件大小(字节) |
|
||
| `lastModified` | string | 最后修改时间(ISO 8601) |
|
||
|
||
文件按修改时间倒序排列。
|
||
|
||
## GET /api/logs
|
||
|
||
获取指定日志文件的内容。
|
||
|
||
### 查询参数
|
||
|
||
| 参数 | 类型 | 必需 | 说明 |
|
||
|------|------|------|------|
|
||
| `file` | string | 否 | 日志文件路径(默认使用 app.log) |
|
||
|
||
### 请求示例(获取默认日志)
|
||
|
||
```bash
|
||
curl "http://localhost:3456/api/logs" \
|
||
-H "x-api-key: your-api-key"
|
||
```
|
||
|
||
### 请求示例(获取指定文件)
|
||
|
||
```bash
|
||
curl "http://localhost:3456/api/logs?file=/home/user/.claude-code-router/logs/ccr-20241226143022.log" \
|
||
-H "x-api-key: your-api-key"
|
||
```
|
||
|
||
### 响应示例
|
||
|
||
```json
|
||
[
|
||
"{\"level\":30,\"time\":1703550622000,\"pid\":12345,\"hostname\":\"server\",\"msg\":\"Incoming request\",\"req\":{\"id\":1,\"method\":\"POST\",\"url\":\"/v1/messages\",\"remoteAddress\":\"127.0.0.1\"}}",
|
||
"{\"level\":30,\"time\":1703550622500,\"pid\":12345,\"hostname\":\"server\",\"msg\":\"Request completed\",\"res\":{\"statusCode\":200,\"responseTime\":500}}",
|
||
"..."
|
||
]
|
||
```
|
||
|
||
返回的是日志行数组,每行是一个 JSON 字符串。
|
||
|
||
### 日志格式
|
||
|
||
日志使用 Pino 格式:
|
||
|
||
```json
|
||
{
|
||
"level": 30,
|
||
"time": 1703550622000,
|
||
"pid": 12345,
|
||
"hostname": "server",
|
||
"msg": "Incoming request",
|
||
"req": {
|
||
"id": 1,
|
||
"method": "POST",
|
||
"url": "/v1/messages",
|
||
"remoteAddress": "127.0.0.1"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 日志级别
|
||
|
||
| 级别 | 值 | 说明 |
|
||
|------|------|------|
|
||
| `trace` | 10 | 最详细的日志 |
|
||
| `debug` | 20 | 调试信息 |
|
||
| `info` | 30 | 一般信息 |
|
||
| `warn` | 40 | 警告信息 |
|
||
| `error` | 50 | 错误信息 |
|
||
| `fatal` | 60 | 致命错误 |
|
||
|
||
## DELETE /api/logs
|
||
|
||
清除指定日志文件的内容。
|
||
|
||
### 查询参数
|
||
|
||
| 参数 | 类型 | 必需 | 说明 |
|
||
|------|------|------|------|
|
||
| `file` | string | 否 | 日志文件路径(默认使用 app.log) |
|
||
|
||
### 请求示例(清除默认日志)
|
||
|
||
```bash
|
||
curl -X DELETE "http://localhost:3456/api/logs" \
|
||
-H "x-api-key: your-api-key"
|
||
```
|
||
|
||
### 请求示例(清除指定文件)
|
||
|
||
```bash
|
||
curl -X DELETE "http://localhost:3456/api/logs?file=/home/user/.claude-code-router/logs/ccr-20241226143022.log" \
|
||
-H "x-api-key: your-api-key"
|
||
```
|
||
|
||
### 响应示例
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"message": "Logs cleared successfully"
|
||
}
|
||
```
|
||
|
||
## 日志位置
|
||
|
||
### 服务器日志
|
||
|
||
位置:`~/.claude-code-router/logs/`
|
||
|
||
文件命名:`ccr-{YYYYMMDD}{HH}{MM}{SS}.log`
|
||
|
||
内容:HTTP 请求、API 调用、服务器事件
|
||
|
||
### 应用日志
|
||
|
||
位置:`~/.claude-code-router/claude-code-router.log`
|
||
|
||
内容:路由决策、业务逻辑事件
|
||
|
||
## 日志轮转
|
||
|
||
服务器日志使用 rotating-file-stream 自动轮转:
|
||
|
||
- **maxFiles**: 3 - 保留最近 3 个日志文件
|
||
- **interval**: 1d - 每天轮转
|
||
- **maxSize**: 50M - 单个文件最大 50MB
|
||
|
||
## 日志分析
|
||
|
||
### 使用 jq 分析日志
|
||
|
||
```bash
|
||
# 查看所有错误日志
|
||
curl "http://localhost:3456/api/logs" \
|
||
-H "x-api-key: your-api-key" | \
|
||
jq -r '.[] | fromjson | select(.level >= 40)'
|
||
|
||
# 统计请求次数
|
||
curl "http://localhost:3456/api/logs" \
|
||
-H "x-api-key: your-api-key" | \
|
||
jq -r '.[] | fromjson | .req.method' | \
|
||
sort | uniq -c
|
||
```
|
||
|
||
### 实时监控日志
|
||
|
||
```bash
|
||
# 通过 API 实时获取最新日志
|
||
watch -n 5 'curl -s "http://localhost:3456/api/logs" -H "x-api-key: your-api-key" | jq -r ".[-10:]"'
|
||
```
|