Parent

Included Modules

Class/Module Index [+]

Quicksearch

Fluent::TextParser::ApacheParser

Constants

REGEXP
TIME_FORMAT

Public Class Methods

new() click to toggle source
# File lib/fluent/parser.rb, line 405
def initialize
  @time_parser = TimeParser.new(TIME_FORMAT)
  @mutex = Mutex.new
end

Public Instance Methods

call(text) click to toggle source
# File lib/fluent/parser.rb, line 414
def call(text)
  m = REGEXP.match(text)
  unless m
    if block_given?
      yield nil, nil
      return
    else
      return nil, nil
    end
  end

  host = m['host']
  host = (host == '-') ? nil : host

  user = m['user']
  user = (user == '-') ? nil : user

  time = m['time']
  time = @mutex.synchronize { @time_parser.parse(time) }

  method = m['method']
  path = m['path']

  code = m['code'].to_i
  code = nil if code == 0

  size = m['size']
  size = (size == '-') ? nil : size.to_i

  referer = m['referer']
  referer = (referer == '-') ? nil : referer

  agent = m['agent']
  agent = (agent == '-') ? nil : agent

  record = {
    "host" => host,
    "user" => user,
    "method" => method,
    "path" => path,
    "code" => code,
    "size" => size,
    "referer" => referer,
    "agent" => agent,
  }

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

[Validate]

Generated with the Darkfish Rdoc Generator 2.