// Configure initializes this producer with values from a plugin config. func (prod *Spooling) Configure(conf core.PluginConfig) error { conf.Override("Formatter", "format.Serialize") err := prod.ProducerBase.Configure(conf) if err != nil { return err } prod.SetStopCallback(prod.close) prod.path = conf.GetString("Path", "/var/run/gollum/spooling") prod.maxFileSize = int64(conf.GetInt("MaxFileSizeMB", 512)) << 20 prod.maxFileAge = time.Duration(conf.GetInt("MaxFileAgeMin", 1)) * time.Minute prod.batchMaxCount = conf.GetInt("BatchMaxCount", 100) prod.batchTimeout = time.Duration(conf.GetInt("BatchTimeoutSec", 5)) * time.Second prod.outfile = make(map[core.MessageStreamID]*spoolFile) prod.rotation = fileRotateConfig{ timeout: prod.maxFileAge, sizeByte: prod.maxFileSize, atHour: -1, atMinute: -1, enabled: true, compress: false, } return nil }