fix container
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user