lib/rack/logstasher/logger.rb in rack-logstasher-1.0.2 vs lib/rack/logstasher/logger.rb in rack-logstasher-1.1.0

- old
+ new

@@ -1,31 +1,31 @@ -require 'rack/common_logger' -require 'logstash/event' +require "rack/common_logger" +require "logstash/event" module Rack module Logstasher class Logger < Rack::CommonLogger def initialize(app, logger, opts = {}) super(app, logger) @extra_request_headers = opts[:extra_request_headers] || {} @extra_response_headers = opts[:extra_response_headers] || {} end - private + private def log(env, status, response_headers, began_at) now = Utils.clock_time data = { - :method => env["REQUEST_METHOD"], - :path => env["PATH_INFO"], - :query_string => env["QUERY_STRING"], - :status => status.to_i, - :duration => duration_in_ms(began_at, now).round(2), - :remote_addr => env['REMOTE_ADDR'], - :request => request_line(env), - :length => extract_content_length(response_headers) + method: env["REQUEST_METHOD"], + path: env["PATH_INFO"], + query_string: env["QUERY_STRING"], + status: status.to_i, + duration: duration_in_ms(began_at, now).round(2), + remote_addr: env["REMOTE_ADDR"], + request: request_line(env), + length: extract_content_length(response_headers), } @extra_request_headers.each do |header, log_key| env_key = "HTTP_#{header.upcase.gsub('-', '_')}" if env[env_key] @@ -37,12 +37,12 @@ if response_headers[header] data[log_key] = response_headers[header] end end - event = LogStash::Event.new(data.merge('tags' => ['request'])) - msg = event.to_json + "\n" + event = LogStash::Event.new(data.merge("tags" => %w[request])) + msg = "#{event.to_json}\n" if @logger.respond_to?(:write) @logger.write(msg) else @logger << msg end @@ -51,14 +51,13 @@ def duration_in_ms(began, ended) (ended - began) * 1000 end def request_line(env) - line = "#{env["REQUEST_METHOD"]} #{env["SCRIPT_NAME"]}#{env['PATH_INFO']}" - line << "?#{env["QUERY_STRING"]}" if env["QUERY_STRING"] and ! env["QUERY_STRING"].empty? - line << " #{env["SERVER_PROTOCOL"]}" + line = "#{env['REQUEST_METHOD']} #{env['SCRIPT_NAME']}#{env['PATH_INFO']}" + line << "?#{env['QUERY_STRING']}" if env["QUERY_STRING"] && !env["QUERY_STRING"].empty? + line << " #{env['SERVER_PROTOCOL']}" line end - - end # Logger + end end end