64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | package westdex | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"tyapi-server/internal/config" | ||
|  | 	"tyapi-server/internal/shared/external_logger" | ||
|  | ) | ||
|  | 
 | ||
|  | // NewWestDexServiceWithConfig 使用配置创建西部数据服务 | ||
|  | func NewWestDexServiceWithConfig(cfg *config.Config) (*WestDexService, error) { | ||
|  | 	// 将配置类型转换为通用外部服务日志配置 | ||
|  | 	loggingConfig := external_logger.ExternalServiceLoggingConfig{ | ||
|  | 		Enabled:               cfg.WestDex.Logging.Enabled, | ||
|  | 		LogDir:                cfg.WestDex.Logging.LogDir, | ||
|  | 		ServiceName:           "westdex", | ||
|  | 		UseDaily:              cfg.WestDex.Logging.UseDaily, | ||
|  | 		EnableLevelSeparation: cfg.WestDex.Logging.EnableLevelSeparation, | ||
|  | 		LevelConfigs:          make(map[string]external_logger.ExternalServiceLevelFileConfig), | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// 转换级别配置 | ||
|  | 	for key, value := range cfg.WestDex.Logging.LevelConfigs { | ||
|  | 		loggingConfig.LevelConfigs[key] = external_logger.ExternalServiceLevelFileConfig{ | ||
|  | 			MaxSize:    value.MaxSize, | ||
|  | 			MaxBackups: value.MaxBackups, | ||
|  | 			MaxAge:     value.MaxAge, | ||
|  | 			Compress:   value.Compress, | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// 创建通用外部服务日志器 | ||
|  | 	logger, err := external_logger.NewExternalServiceLogger(loggingConfig) | ||
|  | 	if err != nil { | ||
|  | 		return nil, err | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// 创建西部数据服务 | ||
|  | 	service := NewWestDexService( | ||
|  | 		cfg.WestDex.URL, | ||
|  | 		cfg.WestDex.Key, | ||
|  | 		cfg.WestDex.SecretID, | ||
|  | 		cfg.WestDex.SecretSecondID, | ||
|  | 		logger, | ||
|  | 	) | ||
|  | 
 | ||
|  | 	return service, nil | ||
|  | } | ||
|  | 
 | ||
|  | // NewWestDexServiceWithLogging 使用自定义日志配置创建西部数据服务 | ||
|  | func NewWestDexServiceWithLogging(url, key, secretID, secretSecondID string, loggingConfig external_logger.ExternalServiceLoggingConfig) (*WestDexService, error) { | ||
|  | 	// 设置服务名称 | ||
|  | 	loggingConfig.ServiceName = "westdex" | ||
|  | 	 | ||
|  | 	// 创建通用外部服务日志器 | ||
|  | 	logger, err := external_logger.NewExternalServiceLogger(loggingConfig) | ||
|  | 	if err != nil { | ||
|  | 		return nil, err | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// 创建西部数据服务 | ||
|  | 	service := NewWestDexService(url, key, secretID, secretSecondID, logger) | ||
|  | 
 | ||
|  | 	return service, nil | ||
|  | } |