class Fluent::TailMultilineInput_EX::MultilineTextParser_EX
Public Instance Methods
configure(conf, required=true)
click to toggle source
# File lib/fluent/plugin/in_tail_multiline_ex.rb, line 8 def configure(conf, required=true) format = conf['format'] if format == nil raise ConfigError, "'format' parameter is required" elsif format[0] != ?/ || format[format.length-1] != ?/ raise ConfigError, "'format' should be RegEx. Template is not supported in multiline mode" end begin @regex = Regexp.new(format[1..-2],Regexp::MULTILINE) if @regex.named_captures.empty? raise "No named captures" end rescue raise ConfigError, "Invalid regexp in format '#{format[1..-2]}': #{$!}" end @parser = RegexpParser.new(@regex, conf) format_firstline = conf['format_firstline'] if format_firstline # Use custom matcher for 1st line if format_firstline[0] == '/' && format_firstline[format_firstline.length-1] == '/' @regex = Regexp.new(format_firstline[1..-2]) else raise ConfigError, "Invalid regexp in format_firstline '#{format_firstline[1..-2]}': #{$!}" end end return true end
match_firstline(text)
click to toggle source
# File lib/fluent/plugin/in_tail_multiline_ex.rb, line 40 def match_firstline(text) @regex.match(text) end