class Fluent::Plugin::Apache2Parser

Constants

REGEXP
TIME_FORMAT

Public Class Methods

new() click to toggle source
Calls superclass method Fluent::Plugin::Parser.new
# File lib/fluent/plugin/parser_apache2.rb, line 27
def initialize
  super
  @time_parser = time_parser_create(format: TIME_FORMAT)
  @mutex = Mutex.new
end

Public Instance Methods

parse(text) { |nil, nil| ... } click to toggle source
# File lib/fluent/plugin/parser_apache2.rb, line 37
def parse(text)
  m = REGEXP.match(text)
  unless m
    yield nil, nil
    return
  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,
  }
  record["time"] = m['time'] if @keep_time_key

  yield time, record
end
patterns() click to toggle source
# File lib/fluent/plugin/parser_apache2.rb, line 33
def patterns
  {'format' => REGEXP, 'time_format' => TIME_FORMAT}
end