module HTTPX::Loggable

  1. lib/httpx/loggable.rb

Methods

Public Instance

  1. log
  2. log_exception
  3. log_redact

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
18 def log(
19   level: @options.debug_level,
20   color: nil,
21   debug_level: @options.debug_level,
22   debug: @options.debug,
23   &msg
24 )
25   return unless debug_level >= level
26 
27   debug_stream = debug || ($stderr if USE_DEBUG_LOG)
28 
29   return unless debug_stream
30 
31   klass = self.class
32 
33   until (class_name = klass.name)
34     klass = klass.superclass
35   end
36 
37   message = +"(pid:#{Process.pid} tid:#{Thread.current.object_id}, self:#{class_name}##{object_id}) "
38   message << msg.call << "\n"
39   message = "\e[#{COLORS[color]}m#{message}\e[0m" if color && debug_stream.respond_to?(:isatty) && debug_stream.isatty
40   debug_stream << message
41 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
43 def log_exception(ex, level: @options.debug_level, color: nil, debug_level: @options.debug_level, debug: @options.debug)
44   log(level: level, color: color, debug_level: debug_level, debug: debug) { ex.full_message }
45 end
log_redact(text, should_redact = @options.debug_redact)
[show source]
   # File lib/httpx/loggable.rb
47 def log_redact(text, should_redact = @options.debug_redact)
48   return text.to_s unless should_redact
49 
50   "[REDACTED]"
51 end