Forráskód Böngészése

Add a feature for add backends from YAML with existed Logger.

ZRY 1 éve
szülő
commit
0b5b4ab807
1 módosított fájl, 37 hozzáadás és 0 törlés
  1. 37 0
      hieda_yamlutil/yamlutil.go

+ 37 - 0
hieda_yamlutil/yamlutil.go

@@ -181,3 +181,40 @@ func CreateHiedaLoggerFromYAMLData(cfgdata CommonLogConfigYAML, autoStartAliSLS
 	}
 	return hyu, nil
 }
+
+func AddBackendsFromYAMLDataWithExistedLogger(logger *hiedalog.HiedaLogger, cfgdata CommonLogConfigYAML, autoStartAliSLS bool) (*HiedaLogYamlUtil, error) {
+	hyu := &HiedaLogYamlUtil{
+		Logger:         logger,
+		alisls_bknlist: make([]*hiedabke_alisls.HiedaBackendAliSLS, 0),
+	}
+	if cfgdata.Enable {
+		if cfgdata.Backends != nil {
+			for k, v := range cfgdata.Backends {
+				lvi := hyu.Logger.LevelFilter.NameToID(v.Level)
+				if lvi == 7 {
+					return nil, fmt.Errorf("unsupported log level '%s' in backend '%s'", v.Level, k)
+				}
+				var cins hiedalog.HiedaLogBackend
+				var err error
+				switch v.Type {
+				case "console":
+					cins, err = hyu.parseConsoleBackend(v)
+				case "file":
+					cins, err = hyu.parseFileBackend(v)
+				case "alisls":
+					cins, err = hyu.parseAlislsBackend(v)
+				default:
+					return nil, fmt.Errorf("unsupported log backend type '%s' in backend '%s'", v.Type, k)
+				}
+				if err != nil {
+					return nil, err
+				}
+				hyu.Logger.AddBackend(cins, lvi)
+			}
+		}
+	}
+	if autoStartAliSLS {
+		hyu.StartAliSLS()
+	}
+	return hyu, nil
+}