class Fluent::Plugin::Apache2Parser
def configure(conf)
def configure(conf) super @time_parser = time_parser_create(format: TIME_FORMAT) end
def initialize
def initialize super @mutex = Mutex.new end
def parse(text)
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
def patterns
def patterns {'format' => REGEXP, 'time_format' => TIME_FORMAT} end