You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.1 KiB
53 lines
1.1 KiB
package lancerlogstream |
|
|
|
import ( |
|
"errors" |
|
"go-common/app/service/ops/log-agent/output/cache/file" |
|
|
|
"github.com/BurntSushi/toml" |
|
) |
|
|
|
type Config struct { |
|
Local bool `tome:"local"` |
|
Name string `tome:"name"` |
|
AggrSize int `tome:"aggrSize"` |
|
SendConcurrency int `tome:"sendConcurrency"` |
|
CacheConfig *file.Config `tome:"cacheConfig"` |
|
PoolConfig *ConnPoolConfig `tome:"poolConfig"` |
|
} |
|
|
|
func (c *Config) ConfigValidate() (error) { |
|
if c == nil { |
|
return errors.New("config of Sock Input is nil") |
|
} |
|
|
|
if c.Name == "" { |
|
return errors.New("output Name can't be nil") |
|
} |
|
|
|
if c.AggrSize == 0 { |
|
c.AggrSize = 819200 |
|
} |
|
|
|
if c.SendConcurrency == 0 { |
|
c.SendConcurrency = 5 |
|
} |
|
|
|
if err := c.CacheConfig.ConfigValidate(); err != nil { |
|
return err |
|
} |
|
|
|
if err := c.PoolConfig.ConfigValidate(); err != nil { |
|
return err |
|
} |
|
|
|
return nil |
|
} |
|
|
|
func DecodeConfig(md toml.MetaData, primValue toml.Primitive) (c interface{}, err error) { |
|
c = new(Config) |
|
if err = md.PrimitiveDecode(primValue, c); err != nil { |
|
return nil, err |
|
} |
|
return c, nil |
|
}
|
|
|