pkg/logger 定义框架依赖的最小日志接口,并提供空实现。
- 为框架与业务层提供统一日志抽象。
- 避免强绑定具体日志库。
- 默认使用
noop实现,保证未配置日志器时不报错。
type LevelLevelDebugLevelInfoLevelWarnLevelError
type Logger interfaceDebugInfoWarnErrorWithContext(ctx)WithFields(fields)
NewNoop() Logger- 返回空日志器,所有调用都会被忽略
本模块没有独立配置结构;通常由业务侧实现自己的 Logger 并注入。
log := logger.NewNoop()
log.Info("service started")type MyLogger struct{}
func (l *MyLogger) Debug(msg string, args ...any) {}
func (l *MyLogger) Info(msg string, args ...any) {}
func (l *MyLogger) Warn(msg string, args ...any) {}
func (l *MyLogger) Error(msg string, args ...any) {}
func (l *MyLogger) WithContext(ctx context.Context) logger.Logger { return l }
func (l *MyLogger) WithFields(fields map[string]any) logger.Logger { return l }gin.New()默认注入logger.NewNoop()。- 可通过
e.WithLogger(customLogger)替换为业务日志实现。
e := gin.New()
e.WithLogger(&MyLogger{})