in plugins/inputs/logfile/fileconfig.go [111:175]
func (config *FileConfig) init() error {
var err error
if !(config.Encoding == "" || config.Encoding == "utf_8" || config.Encoding == "utf-8" || config.Encoding == "utf8" || config.Encoding == "ascii") {
if config.Enc, _ = charset.Lookup(config.Encoding); config.Enc == nil {
if config.Enc, _ = ianaindex.IANA.Encoding(config.Encoding); config.Enc == nil {
msg := fmt.Sprintf("E! the encoding %s is not supported.", config.Encoding)
log.Print(msg)
return errors.New(msg)
}
}
}
//If the log group name is not specified, we will use the part before the last dot in the file path as the log group name.
if config.LogGroupName == "" && !config.PublishMultiLogs {
config.LogGroupName = logGroupName(config.FilePath)
}
//If the timezone info is not specified, we will use the Local timezone as default value.
if config.Timezone == time.UTC.String() {
config.TimezoneLoc = time.UTC
} else {
config.TimezoneLoc = time.Local
}
if config.TimestampRegex != "" {
if config.TimestampRegexP, err = regexp.Compile(config.TimestampRegex); err != nil {
return fmt.Errorf("timestamp_regex has issue, regexp: Compile( %v ): %v", config.TimestampRegex, err.Error())
}
}
if config.MultiLineStartPattern == "" {
config.MultiLineStartPattern = "^[\\S]"
}
if config.MultiLineStartPattern == "{timestamp_regex}" {
config.MultiLineStartPatternP = config.TimestampRegexP
} else {
if config.MultiLineStartPatternP, err = regexp.Compile(config.MultiLineStartPattern); err != nil {
return fmt.Errorf("multi_line_start_pattern has issue, regexp: Compile( %v ): %v", config.MultiLineStartPattern, err.Error())
}
}
if config.Blacklist != "" {
if config.BlacklistRegexP, err = regexp.Compile(config.Blacklist); err != nil {
return fmt.Errorf("blacklist regex has issue, regexp: Compile( %v ): %v", config.Blacklist, err.Error())
}
}
if config.MaxEventSize == 0 {
config.MaxEventSize = defaultMaxEventSize
}
if config.TruncateSuffix == "" {
config.TruncateSuffix = defaultTruncateSuffix
}
if config.RetentionInDays == 0 {
config.RetentionInDays = -1
}
for _, f := range config.Filters {
err = f.init()
if err != nil {
return err
}
}
return nil
}