Decimal support for events.stream.output.rotate.when

This commit is contained in:
Giuseppe 2018-10-28 22:41:31 +01:00
commit 251dbb3ef2
4 changed files with 28 additions and 6 deletions

View file

@ -21,7 +21,7 @@ type rotation struct {
Compress bool
Format string
How string
Period int
Period float64
}
type EventsStream struct {
@ -147,9 +147,9 @@ func NewEventsStream(s *session.Session) *EventsStream {
"",
"Datetime format to use for log rotation file names."))
stream.AddParam(session.NewIntParameter("events.stream.output.rotate.when",
"10485760",
"File size or time duration in seconds for log rotation."))
stream.AddParam(session.NewDecimalParameter("events.stream.output.rotate.when",
"10",
"File size (in MB) or time duration (in seconds) for log rotation."))
stream.AddParam(session.NewBoolParameter("events.stream.http.request.dump",
"false",
@ -193,7 +193,7 @@ func (s *EventsStream) Configure() (err error) {
return err
} else if err, s.rotation.How = s.StringParam("events.stream.output.rotate.how"); err != nil {
return err
} else if err, s.rotation.Period = s.IntParam("events.stream.output.rotate.when"); err != nil {
} else if err, s.rotation.Period = s.DecParam("events.stream.output.rotate.when"); err != nil {
return err
}

View file

@ -167,7 +167,7 @@ func (s *EventsStream) doRotation() {
doRotate := false
if info, err := s.output.Stat(); err == nil {
if s.rotation.How == "size" {
doRotate = info.Size() >= int64(s.rotation.Period)
doRotate = float64(info.Size()) >= float64(s.rotation.Period*1024*1024)
} else if s.rotation.How == "time" {
doRotate = info.ModTime().Unix()%int64(s.rotation.Period) == 0
}