bilibili-backup/app/service/ops/log-agent/output/cache/file/config.go
2019-04-22 02:59:20 +00:00

61 lines
1.2 KiB
Go

package file
import (
"time"
"errors"
"path"
xtime "go-common/library/time"
)
type Config struct {
CacheFlushInterval xtime.Duration `tome:"cacheFlushInterval"`
WriteBuffer int `tome:"writeBuffer"`
Storage string `tome:"storage"`
StorageMaxMB int `tome:"storageMaxMB"`
FileBytes int `tome:"fileBytes"`
Suffix string `tome:"suffix"`
ReadBuffer int `tome:"readBuffer"`
Index string `tome:"index"`
}
func (c *Config) ConfigValidate() (error) {
if c == nil {
return errors.New("config of fileCache is nil")
}
if time.Duration(c.CacheFlushInterval) == 0 {
c.CacheFlushInterval = xtime.Duration(time.Second * 5)
}
if c.WriteBuffer == 0 {
c.WriteBuffer = 1024 * 1024 * 2 // 2M by default
}
if c.Storage == "" {
return errors.New("storage settings for lancer output can't be nil")
}
if c.StorageMaxMB == 0 {
c.StorageMaxMB = 5120
}
if c.FileBytes == 0 {
c.FileBytes = 1024 * 1024 * 2 // 2M by default
}
if c.Suffix == "" {
c.Suffix = ".log"
}
if c.ReadBuffer == 0 {
c.ReadBuffer = 1024 * 1024 * 2 // 2M by default
}
if c.Index == "" {
c.Index = path.Join(c.Storage, "output.index")
}
return nil
}