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:
2026-08-21 09:45:00 +08:00
parent ff3d65db22
commit 898cb72422
+12 -3
View File
@@ -1,16 +1,25 @@
package contracts
import (
"log/slog"
"git.fsdpf.net/go/req"
"github.com/samber/do/v2"
)
// 日志结构化字段的标准 key:LogKeyKind 标识控制器大类(Http/Cron/Job 等),
// LogKeyComponent 标识具体是哪一个实例/类型。
const (
LogKeyKind = "kind"
LogKeyComponent = "component"
)
type Controller interface {
// 初始化
Init() error
// 获取 Container
Container() do.Injector
Container() Injector
// 派遣一个任务
Dispatch(job string, payload any, u req.User) error
// Logger 返回当前进程的默认 slog logger
Logger() *slog.Logger
}