Files
2026-07-23 15:13:49 +08:00

52 lines
1.5 KiB
Go

package rongxing
import (
"hyapi-server/internal/config"
"hyapi-server/internal/shared/external_logger"
)
// NewRongxingServiceWithConfig 使用配置创建戎行服务
func NewRongxingServiceWithConfig(cfg *config.Config) (*RongxingService, error) {
loggingConfig := external_logger.ExternalServiceLoggingConfig{
Enabled: cfg.Rongxing.Logging.Enabled,
LogDir: cfg.Rongxing.Logging.LogDir,
ServiceName: "rongxing",
UseDaily: cfg.Rongxing.Logging.UseDaily,
EnableLevelSeparation: cfg.Rongxing.Logging.EnableLevelSeparation,
LevelConfigs: make(map[string]external_logger.ExternalServiceLevelFileConfig),
}
if cfg.Rongxing.Logging.ServiceName != "" {
loggingConfig.ServiceName = cfg.Rongxing.Logging.ServiceName
}
for key, value := range cfg.Rongxing.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
}
timeout := cfg.Rongxing.Timeout
if timeout <= 0 {
timeout = defaultRequestTimeout
}
return NewRongxingService(serviceConfig{
BaseURL: cfg.Rongxing.URL,
Account: cfg.Rongxing.Account,
Password: cfg.Rongxing.Password,
AppID: cfg.Rongxing.AppID,
PrivateKey: cfg.Rongxing.PrivateKey,
Timeout: timeout,
Proxy: cfg.Rongxing.Proxy,
}, logger)
}