Compare commits

..

No commits in common. "8f85c503dab9b5e0e477ddffe5144c702c80e73b" and "e75cec8aaf98ad75f1c2c0c3fdece155473bd7f3" have entirely different histories.

4 changed files with 888 additions and 13 deletions

883
.log.meta.json Normal file
View File

@ -0,0 +1,883 @@
{
"debug": [
{
"Index": 0,
"Name": "LogName",
"KeyName": "",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 1,
"Name": "LogType",
"KeyName": "",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 2,
"Name": "LogTime",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "time",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 3,
"Name": "TraceId",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 4,
"Name": "Image",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 5,
"Name": "Server",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 6,
"Name": "Debug",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 7,
"Name": "Extra",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
}
],
"discover": [
{
"Index": 0,
"Name": "LogName",
"KeyName": "",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 1,
"Name": "LogType",
"KeyName": "",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 2,
"Name": "LogTime",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "time",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 3,
"Name": "TraceId",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 4,
"Name": "Image",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 5,
"Name": "Server",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 6,
"Name": "App",
"KeyName": "",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 7,
"Name": "Method",
"KeyName": "",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 8,
"Name": "Path",
"KeyName": "",
"AttachBefore": false,
"Color": "blue",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 9,
"Name": "Node",
"KeyName": "",
"AttachBefore": false,
"Color": "yellow",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 10,
"Name": "Attempts",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 11,
"Name": "UsedTime",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "%.2fms",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 12,
"Name": "Error",
"KeyName": "",
"AttachBefore": false,
"Color": "red",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 13,
"Name": "Extra",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
}
],
"error": [
{
"Index": 0,
"Name": "LogName",
"KeyName": "",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 1,
"Name": "LogType",
"KeyName": "",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 2,
"Name": "LogTime",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "time",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 3,
"Name": "TraceId",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 4,
"Name": "Image",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 5,
"Name": "Server",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 6,
"Name": "Error",
"KeyName": "",
"AttachBefore": false,
"Color": "red",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 7,
"Name": "Extra",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 8,
"Name": "CallStacks",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
}
],
"info": [
{
"Index": 0,
"Name": "LogName",
"KeyName": "",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 1,
"Name": "LogType",
"KeyName": "",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 2,
"Name": "LogTime",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "time",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 3,
"Name": "TraceId",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 4,
"Name": "Image",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 5,
"Name": "Server",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 6,
"Name": "Info",
"KeyName": "",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 7,
"Name": "Extra",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
}
],
"request": [
{
"Index": 0,
"Name": "LogName",
"KeyName": "",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 1,
"Name": "LogType",
"KeyName": "",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 2,
"Name": "LogTime",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "time",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 3,
"Name": "TraceId",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 4,
"Name": "Image",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 5,
"Name": "Server",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 6,
"Name": "ServerId",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 7,
"Name": "App",
"KeyName": "App",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 8,
"Name": "Node",
"KeyName": "",
"AttachBefore": true,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 9,
"Name": "FromApp",
"KeyName": "From",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 10,
"Name": "FromNode",
"KeyName": "",
"AttachBefore": true,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 11,
"Name": "ClientIp",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 12,
"Name": "ClientAppName",
"KeyName": "Client",
"AttachBefore": true,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 13,
"Name": "ClientAppVersion",
"KeyName": "",
"AttachBefore": true,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 14,
"Name": "UserId",
"KeyName": "User",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 15,
"Name": "DeviceId",
"KeyName": "Device",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 16,
"Name": "SessionId",
"KeyName": "Session",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 17,
"Name": "Host",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 18,
"Name": "Method",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 19,
"Name": "Path",
"KeyName": "",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 20,
"Name": "Scheme",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 21,
"Name": "Proto",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 22,
"Name": "AuthLevel",
"KeyName": "",
"AttachBefore": false,
"Color": "green",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 23,
"Name": "Priority",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 24,
"Name": "RequestData",
"KeyName": "Request",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 25,
"Name": "RequestHeaders",
"KeyName": "Headers",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 26,
"Name": "UsedTime",
"KeyName": "",
"AttachBefore": false,
"Color": "green",
"Format": "",
"Precision": 6,
"WithoutKey": false,
"Hide": false
},
{
"Index": 27,
"Name": "ResponseCode",
"KeyName": "Status",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 28,
"Name": "ResponseDataLength",
"KeyName": "ContentLength",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 29,
"Name": "ResponseData",
"KeyName": "Response",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 30,
"Name": "ResponseHeaders",
"KeyName": "Headers",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 31,
"Name": "Extra",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
}
],
"warning": [
{
"Index": 0,
"Name": "LogName",
"KeyName": "",
"AttachBefore": false,
"Color": "cyan",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 1,
"Name": "LogType",
"KeyName": "",
"AttachBefore": false,
"Color": "magenta",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 2,
"Name": "LogTime",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "time",
"Precision": 0,
"WithoutKey": false,
"Hide": false
},
{
"Index": 3,
"Name": "TraceId",
"KeyName": "",
"AttachBefore": false,
"Color": "gray",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 4,
"Name": "Image",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 5,
"Name": "Server",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": true
},
{
"Index": 6,
"Name": "Warning",
"KeyName": "",
"AttachBefore": false,
"Color": "yellow",
"Format": "",
"Precision": 0,
"WithoutKey": true,
"Hide": false
},
{
"Index": 7,
"Name": "Extra",
"KeyName": "",
"AttachBefore": false,
"Color": "",
"Format": "",
"Precision": 0,
"WithoutKey": false,
"Hide": false
}
]
}

View File

@ -1,13 +1,5 @@
# CHANGELOG - go/service
## v1.5.19 (2026-06-22)
- **依赖更新**:
- 升级依赖 `id``v1.5.6``redis``v1.5.10`
## v1.5.18 (2026-06-21)
- **依赖更新**:
- 升级依赖 `id``v1.5.5``redis``v1.5.9`(同步修复旧版本 ID 未打乱的 Bug
## v1.5.17 (2026-06-21)
- **Session 增强**:
- `Save` 改为可变参数 `Save(args ...map[string]any) error`,支持传入 map 批量设置后保存。

View File

@ -1,9 +1,9 @@
# Service Module Test Report
## 性能测试 (Benchmark)
- 测试日期: 2026-06-22
- 版本: v1.5.19
- 指标: `BenchmarkRouting`: **5394 ns/op**
- 测试日期: 2026-06-21
- 版本: v1.0.4
- 指标: `BenchmarkRouting`: 2791 ns/op
- 环境: Darwin / Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
## 单元测试覆盖 (Unit Test)

4
go.mod
View File

@ -8,10 +8,10 @@ require (
apigo.cc/go/discover v1.5.3
apigo.cc/go/file v1.5.5
apigo.cc/go/http v1.5.3
apigo.cc/go/id v1.5.6
apigo.cc/go/id v1.5.5
apigo.cc/go/jsmod v1.5.3
apigo.cc/go/log v1.5.8
apigo.cc/go/redis v1.5.10
apigo.cc/go/redis v1.5.9
apigo.cc/go/safe v1.5.2
apigo.cc/go/starter v1.5.5
apigo.cc/go/timer v1.5.0