class Fluent::TextParser::SyslogParser

Constants

REGEXP

From existence TextParser pattern

REGEXP_WITH_PRI

From in_syslog default pattern

Public Class Methods

new() click to toggle source
Calls superclass method Fluent::Parser.new
# File lib/fluent/parser.rb, line 542
def initialize
  super
  @mutex = Mutex.new
end

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method Fluent::Parser#configure
# File lib/fluent/parser.rb, line 547
def configure(conf)
  super

  @regexp = @with_priority ? REGEXP_WITH_PRI : REGEXP
  @time_parser = TextParser::TimeParser.new(@time_format)
end
parse(text) { |nil, nil| ... } click to toggle source
# File lib/fluent/parser.rb, line 558
def parse(text)
  m = @regexp.match(text)
  unless m
    if block_given?
      yield nil, nil
      return
    else
      return nil, nil
    end
  end

  time = nil
  record = {}

  m.names.each { |name|
    if value = m[name]
      case name
      when "pri"
        record['pri'] = value.to_i
      when "time"
        time = @mutex.synchronize { @time_parser.parse(value.gsub(/ +/, ' ')) }
        record[name] = value if @keep_time_key
      else
        record[name] = value
      end
    end
  }

  if @estimate_current_event
    time ||= Engine.now
  end

  if block_given?
    yield time, record
  else
    return time, record
  end
end
patterns() click to toggle source
# File lib/fluent/parser.rb, line 554
def patterns
  {'format' => @regexp, 'time_format' => @time_format}
end