fix: Fix panic in parsers due to missing Log for all plugins using SetParserFunc. (#10288)

This commit is contained in:
Sven Rebhan 2021-12-16 16:20:04 +01:00 committed by GitHub
parent 68233c5934
commit d1d81b71ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 1 deletions

View File

@ -1190,7 +1190,18 @@ func (c *Config) addInput(name string, table *ast.Table) error {
return err
}
t.SetParserFunc(func() (parsers.Parser, error) {
return parsers.NewParser(config)
parser, err := parsers.NewParser(config)
if err != nil {
return nil, err
}
logger := models.NewLogger("parsers", config.DataFormat, name)
models.SetLoggerOnPlugin(parser, logger)
if initializer, ok := parser.(telegraf.Initializer); ok {
if err := initializer.Init(); err != nil {
return nil, err
}
}
return parser, nil
})
}