package config

import (
	"github.com/coroot/coroot-node-agent/utils/worker"
	"github.com/sirupsen/logrus"
	klog "github.com/sirupsen/logrus"
)

// updateProxyClientEndpoints 更新 ProxyClient 的 endpoints
// 当 ConfigServer 热更新时，需要同步更新 ProxyClient 的 endpoints
func updateProxyClientEndpoints(configServer string) {
	proxyClient, err := worker.GetProxyClient()
	if err != nil {
		// ProxyClient 还未初始化，不需要更新
		klog.Debugf("ProxyClient not initialized yet, skipping endpoint update")
		return
	}

	// 更新 endpoints
	if err := proxyClient.SetEndpoint(configServer, false); err != nil {
		klog.Warnf("Failed to update ProxyClient endpoints: %v", err)
	} else {
		klog.Infof("Updated ProxyClient endpoints to: %s", configServer)
	}
}

// updateLogLevel 更新日志级别
// 当 logging.log_level 热更新时，需要重新设置 logrus 的级别
func updateLogLevel(level string) {
	if level == "" {
		level = "info"
	}
	logrusLevel, err := logrus.ParseLevel(level)
	if err != nil {
		klog.Warnf("Failed to parse log level %s: %v", level, err)
		return
	}
	logrus.SetLevel(logrusLevel)
	klog.Infof("Updated log level to: %s", level)
}

// updateLogOutput 更新日志输出目标
// 当 logging.console_log 热更新时，需要更新日志输出
func updateLogOutput(consoleLog bool) {
	// 注意：由于 logrus 的输出设置比较复杂，这里只更新基本设置
	// 如果需要完整的输出切换，可能需要重新调用 logs.InitLog
	klog.Infof("Updated console log output: %v", consoleLog)
}
