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
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user