feat: Controller 增加 Logger() 方法与标准日志字段 key
Controller.Container() 改用 contracts 自己的 Injector 类型别名(跟 di.go 里其它地方一致),不直接暴露 do.Injector。新增 Logger() *slog.Logger 让 控制器可以拿到当前进程的默认 logger 记结构化日志;LogKeyKind/LogKeyComponent 定义了两个标准字段 key(控制器大类 + 具体实例/类型),供各类 handler 统一 用同一套日志字段命名。
This commit is contained in:
+12
-3
@@ -1,16 +1,25 @@
|
|||||||
package contracts
|
package contracts
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log/slog"
|
||||||
|
|
||||||
"git.fsdpf.net/go/req"
|
"git.fsdpf.net/go/req"
|
||||||
"github.com/samber/do/v2"
|
)
|
||||||
|
|
||||||
|
// 日志结构化字段的标准 key:LogKeyKind 标识控制器大类(Http/Cron/Job 等),
|
||||||
|
// LogKeyComponent 标识具体是哪一个实例/类型。
|
||||||
|
const (
|
||||||
|
LogKeyKind = "kind"
|
||||||
|
LogKeyComponent = "component"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Controller interface {
|
type Controller interface {
|
||||||
// 初始化
|
// 初始化
|
||||||
Init() error
|
Init() error
|
||||||
// 获取 Container
|
// 获取 Container
|
||||||
Container() do.Injector
|
Container() Injector
|
||||||
// 派遣一个任务
|
// 派遣一个任务
|
||||||
Dispatch(job string, payload any, u req.User) error
|
Dispatch(job string, payload any, u req.User) error
|
||||||
|
// Logger 返回当前进程的默认 slog logger
|
||||||
|
Logger() *slog.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user