Files
contracts/controller.go
T
what 898cb72422 feat: Controller 增加 Logger() 方法与标准日志字段 key
Controller.Container() 改用 contracts 自己的 Injector 类型别名(跟 di.go
里其它地方一致),不直接暴露 do.Injector。新增 Logger() *slog.Logger 让
控制器可以拿到当前进程的默认 logger 记结构化日志;LogKeyKind/LogKeyComponent
定义了两个标准字段 key(控制器大类 + 具体实例/类型),供各类 handler 统一
用同一套日志字段命名。
2026-08-21 09:45:00 +08:00

26 lines
546 B
Go

package contracts
import (
"log/slog"
"git.fsdpf.net/go/req"
)
// 日志结构化字段的标准 key:LogKeyKind 标识控制器大类(Http/Cron/Job 等),
// LogKeyComponent 标识具体是哪一个实例/类型。
const (
LogKeyKind = "kind"
LogKeyComponent = "component"
)
type Controller interface {
// 初始化
Init() error
// 获取 Container
Container() Injector
// 派遣一个任务
Dispatch(job string, payload any, u req.User) error
// Logger 返回当前进程的默认 slog logger
Logger() *slog.Logger
}