Module: Fauna::ClientLogger
- Defined in:
- lib/fauna/client_logger.rb
Overview
Example observer that can be used for debugging
Class Method Summary collapse
-
.logger ⇒ Object
Lambda that can be the
observer
for a Client. -
.show_request_result(request_result) ⇒ Object
Translates a RequestResult to a string suitable for logging.
Class Method Details
.logger ⇒ Object
Lambda that can be the observer
for a Client. Will call the passed block on a string representation of each RequestResult.
Example:
logger = ClientLogger.logger do |str|
puts str
end
Client.new observer: logger, ...
14 15 16 17 18 |
# File 'lib/fauna/client_logger.rb', line 14 def self.logger lambda do |request_result| yield show_request_result(request_result) end end |
.show_request_result(request_result) ⇒ Object
Translates a RequestResult to a string suitable for logging.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/fauna/client_logger.rb', line 21 def self.show_request_result(request_result) rr = request_result logged = '' logged << "Fauna #{rr.method.to_s.upcase} /#{rr.path}#{query_string_for_logging(rr.query)}\n" logged << " Credentials: #{rr.auth}\n" if rr.request_content logged << " Request JSON: #{indent(FaunaJson.to_json_pretty(rr.request_content))}\n" end logged << " Response headers: #{indent(FaunaJson.to_json_pretty(rr.response_headers))}\n" logged << " Response JSON: #{indent(FaunaJson.to_json_pretty(rr.response_content))}\n" logged << " Response (#{rr.status_code}): Network latency #{(rr.time_taken * 1000).to_i}ms" logged end |