|
@@ -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
|
|
|
+}
|