package yushan import ( "tyapi-server/internal/config" "tyapi-server/internal/shared/external_logger" ) // NewYushanServiceWithConfig 使用配置创建羽山服务 func NewYushanServiceWithConfig(cfg *config.Config) (*YushanService, error) { // 将配置类型转换为通用外部服务日志配置 loggingConfig := external_logger.ExternalServiceLoggingConfig{ Enabled: cfg.Yushan.Logging.Enabled, LogDir: cfg.Yushan.Logging.LogDir, ServiceName: "yushan", UseDaily: cfg.Yushan.Logging.UseDaily, EnableLevelSeparation: cfg.Yushan.Logging.EnableLevelSeparation, LevelConfigs: make(map[string]external_logger.ExternalServiceLevelFileConfig), } // 转换级别配置 for key, value := range cfg.Yushan.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 := NewYushanService( cfg.Yushan.URL, cfg.Yushan.APIKey, cfg.Yushan.AcctID, logger, ) return service, nil } // NewYushanServiceWithLogging 使用自定义日志配置创建羽山服务 func NewYushanServiceWithLogging(url, apiKey, acctID string, loggingConfig external_logger.ExternalServiceLoggingConfig) (*YushanService, error) { // 设置服务名称 loggingConfig.ServiceName = "yushan" // 创建通用外部服务日志器 logger, err := external_logger.NewExternalServiceLogger(loggingConfig) if err != nil { return nil, err } // 创建羽山服务 service := NewYushanService(url, apiKey, acctID, logger) return service, nil } // NewYushanServiceSimple 创建简单的羽山服务(无日志) func NewYushanServiceSimple(url, apiKey, acctID string) *YushanService { return NewYushanService(url, apiKey, acctID, nil) }