multiline.go 537 B

12345678910111213141516171819202122232425262728293031
  1. package file
  2. import (
  3. "errors"
  4. "regexp"
  5. "fmt"
  6. )
  7. type MultilineConf struct {
  8. Pattern string `toml:"pattern"`
  9. MaxLines int `toml:"maxLines"`
  10. }
  11. func (c *MultilineConf) ConfigValidate() (error) {
  12. if c == nil {
  13. return errors.New("config of Multiline is nil")
  14. }
  15. if c.Pattern == "" {
  16. return errors.New("Pattern in Multiline can't be nil")
  17. }
  18. if _, err := regexp.Compile(c.Pattern); err != nil {
  19. return fmt.Errorf("Multiline pattern compile error: %s", err)
  20. }
  21. if c.MaxLines == 0 {
  22. c.MaxLines = 200
  23. }
  24. return nil
  25. }