module HTTPX::Loggable

  1. lib/httpx/loggable.rb

Constants

COLORS = { black: 30, red: 31, green: 32, yellow: 33, blue: 34, magenta: 35, cyan: 36, white: 37, }.freeze  
USE_DEBUG_LOG = ENV.key?("HTTPX_DEBUG")  

Public Instance methods

log( level: @options.debug_level, color: nil, debug_level: @options.debug_level, debug: @options.debug, &msg )
[show source]
   # File lib/httpx/loggable.rb
20 def log(
21   level: @options.debug_level,
22   color: nil,
23   debug_level: @options.debug_level,
24   debug: @options.debug,
25   &msg
26 )
27   return unless debug_level >= level
28 
29   debug_stream = debug || ($stderr if USE_DEBUG_LOG)
30 
31   return unless debug_stream
32 
33   klass = self.class
34 
35   until (class_name = klass.name)
36     klass = klass.superclass
37   end
38 
39   message = +"(time:#{Time.now.utc}, pid:#{Process.pid}, " \
40              "tid:#{Thread.current.object_id}, " \
41              "fid:#{Fiber.current.object_id}, " \
42              "self:#{class_name}##{object_id}) "
43   message << msg.call << "\n"
44   message = "\e[#{COLORS[color]}m#{message}\e[0m" if color && debug_stream.respond_to?(:isatty) && debug_stream.isatty
45   debug_stream << message
46 end
log_exception(ex, level: @options.debug_level, color: nil, debug_level: @options.debug_level, debug: @options.debug)
[show source]
   # File lib/httpx/loggable.rb
48 def log_exception(ex, level: @options.debug_level, color: nil, debug_level: @options.debug_level, debug: @options.debug)
49   log(level: level, color: color, debug_level: debug_level, debug: debug) { ex.full_message }
50 end
log_redact(text, should_redact)
[show source]
   # File lib/httpx/loggable.rb
60 def log_redact(text, should_redact)
61   should_redact ||= @options.debug_redact == true
62 
63   return text.to_s unless should_redact
64 
65   "[REDACTED]"
66 end
log_redact_body(text)
[show source]
   # File lib/httpx/loggable.rb
56 def log_redact_body(text)
57   log_redact(text, @options.debug_redact == :body)
58 end
log_redact_headers(text)
[show source]
   # File lib/httpx/loggable.rb
52 def log_redact_headers(text)
53   log_redact(text, @options.debug_redact == :headers)
54 end