Class: EsClient::Logger

Inherits:
Logger
  • Object
show all
Defined in:
lib/es_client/logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(path, options) ⇒ Logger

Returns a new instance of Logger.



3
4
5
6
# File 'lib/es_client/logger.rb', line 3

def initialize(path, options)
  super(path)
  @options = options
end

Instance Method Details

#exception(e, http = nil, options = nil) ⇒ Object



17
18
19
20
21
22
# File 'lib/es_client/logger.rb', line 17

def exception(e, http=nil, options=nil)
  return unless error?
  backtrace = e.backtrace.map { |l| "#{' ' * 2}#{l}" }.join("\n")
  curl = "#{to_curl(http, options)}" if options && http
  error "#{e.class} #{e.message}#{curl}\n#{options[:response]}\n#{backtrace}\n\n"
end

#request(http, response, options) ⇒ Object



8
9
10
11
12
13
14
15
# File 'lib/es_client/logger.rb', line 8

def request(http, response, options)
  log_level = response.success? ? :debug : :warn
  return unless send("#{log_level}?")
  took = response.try!(:decoded).try!(:[], 'took') ? response.decoded['took'] : 'N/A'
  message = "[#{response.code}](#{took} msec) #{to_curl(http, options)}"
  message << "\n#{JSON.pretty_generate(response.decoded)}" if @options[:log_response] && response.try!(:decoded)
  send log_level, message
end