fix container

This commit is contained in:
2025-07-28 15:30:48 +08:00
parent 560c81a8aa
commit d2935b8f97

View File

@@ -114,17 +114,22 @@ func NewContainer() *Container {
},
// 提供普通的*zap.Logger用于大多数场景
func(log logger.Logger) *zap.Logger {
// 尝试转换为ZapLogger
if zapLogger, ok := log.(*logger.ZapLogger); ok {
return zapLogger.GetZapLogger()
}
// 尝试转换为LevelLogger
if levelLogger, ok := log.(*logger.LevelLogger); ok {
// 获取Info级别的日志器作为默认
if infoLogger := levelLogger.GetLevelLogger(zapcore.InfoLevel); infoLogger != nil {
return infoLogger
}
}
// 如果类型转换失败创建一个默认的zap logger
defaultLogger, _ := zap.NewProduction()
return defaultLogger
},
// 提供业务日志记录器
func(logger *zap.Logger) *middleware.BusinessLogger {
return middleware.NewBusinessLogger(logger)
},
// 数据库连接
func(cfg *config.Config, cacheService interfaces.CacheService, logger *zap.Logger) (*gorm.DB, error) {
dbCfg := database.Config{
@@ -307,6 +312,27 @@ func NewContainer() *Container {
middleware.NewTraceIDMiddleware,
middleware.NewErrorTrackingMiddleware,
NewRequestBodyLoggerMiddlewareWrapper,
// 新增的中间件
func(logger *zap.Logger) *middleware.PanicRecoveryMiddleware {
return middleware.NewPanicRecoveryMiddleware(logger)
},
func(logger *zap.Logger, cfg *config.Config) *middleware.ComprehensiveLoggerMiddleware {
config := &middleware.ComprehensiveLoggerConfig{
EnableRequestLogging: true,
EnableResponseLogging: true,
EnableRequestBodyLogging: cfg.App.IsDevelopment(), // 开发环境记录请求体
EnableErrorLogging: true,
EnableBusinessLogging: true,
EnablePerformanceLogging: true,
MaxBodySize: 1024 * 10, // 10KB
ExcludePaths: []string{"/health", "/metrics", "/favicon.ico", "/swagger"},
}
return middleware.NewComprehensiveLoggerMiddleware(logger, config)
},
// 业务日志记录器
func(logger *zap.Logger) *middleware.BusinessLogger {
return middleware.NewBusinessLogger(logger)
},
),
// 仓储层 - 用户域
@@ -624,26 +650,6 @@ func RegisterRoutes(
// ================ 中间件包装函数 ================
// NewPanicRecoveryMiddlewareWrapper 创建Panic恢复中间件包装器
func NewPanicRecoveryMiddlewareWrapper(logger *zap.Logger) *middleware.PanicRecoveryMiddleware {
return middleware.NewPanicRecoveryMiddleware(logger)
}
// NewComprehensiveLoggerMiddlewareWrapper 创建全面日志中间件包装器
func NewComprehensiveLoggerMiddlewareWrapper(logger *zap.Logger, cfg *config.Config) *middleware.ComprehensiveLoggerMiddleware {
config := &middleware.ComprehensiveLoggerConfig{
EnableRequestLogging: true,
EnableResponseLogging: true,
EnableRequestBodyLogging: cfg.App.IsDevelopment(), // 开发环境记录请求体
EnableErrorLogging: true,
EnableBusinessLogging: true,
EnablePerformanceLogging: true,
MaxBodySize: 1024 * 10, // 10KB
ExcludePaths: []string{"/health", "/metrics", "/favicon.ico", "/swagger"},
}
return middleware.NewComprehensiveLoggerMiddleware(logger, config)
}
// NewRequestLoggerMiddlewareWrapper 创建请求日志中间件包装器
func NewRequestLoggerMiddlewareWrapper(logger *zap.Logger, cfg *config.Config, tracer *tracing.Tracer) *middleware.RequestLoggerMiddleware {
return middleware.NewRequestLoggerMiddleware(logger, cfg.App.IsDevelopment(), tracer)