module Fauna::ClientLogger
Example observer that can be used for debugging
Public Class Methods
logger() { |show_request_result(request_result)| ... }
click to toggle source
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, ...
# File lib/fauna/client_logger.rb 14 def self.logger 15 lambda do |request_result| 16 yield show_request_result(request_result) 17 end 18 end
show_request_result(request_result)
click to toggle source
Translates a RequestResult
to a string suitable for logging.
# File lib/fauna/client_logger.rb 21 def self.show_request_result(request_result) 22 rr = request_result 23 logged = '' 24 25 logged << "Fauna #{rr.method.to_s.upcase} /#{rr.path}#{query_string_for_logging(rr.query)}\n" 26 logged << " Credentials: #{rr.auth}\n" 27 if rr.request_content 28 logged << " Request JSON: #{indent(FaunaJson.to_json_pretty(rr.request_content))}\n" 29 end 30 logged << " Response headers: #{indent(FaunaJson.to_json_pretty(rr.response_headers))}\n" 31 logged << " Response JSON: #{indent(FaunaJson.to_json_pretty(rr.response_content))}\n" 32 logged << " Response (#{rr.status_code}): Network latency #{(rr.time_taken * 1000).to_i}ms" 33 34 logged 35 end