class HTTParty::Logger::LogstashFormatter
:nodoc:
def content_length
def content_length @content_length ||= response.respond_to?(:headers) ? response.headers['Content-Length'] : response['Content-Length'] end
def current_time
def current_time Time.now.strftime('%Y-%m-%d %H:%M:%S %z') end
def format(request, response)
def format(request, response) @request = request @response = response logger.public_send level, logstash_message end
def http_method
def http_method @http_method ||= request.http_method.name.split('::').last.upcase end
def initialize(logger, level)
def initialize(logger, level) @logger = logger @level = level.to_sym end
def logstash_message
def logstash_message require 'json' { '@timestamp' => current_time, '@version' => 1, 'content_length' => content_length || '-', 'http_method' => http_method, 'message' => message, 'path' => path, 'response_code' => response.code, 'severity' => level, 'tags' => [TAG_NAME], }.to_json end
def message
def message "[#{TAG_NAME}] #{response.code} \"#{http_method} #{path}\" #{content_length || '-'} " end
def path
def path @path ||= request.path.to_s end