module HTTPX::Loggable

  1. lib/httpx/loggable.rb

Methods

Public Class

  1. log_identifiers

Public Instance

  1. log
  2. log_exception

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 Class methods

log_identifiers()
[show source]
   # File lib/httpx/loggable.rb
20 def self.log_identifiers
21   "pid=#{Process.pid} " \
22     "tid=#{Thread.current.object_id} " \
23     "fid=#{Fiber.current.object_id}"
24 end

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
26 def log(
27   level: @options.debug_level,
28   color: nil,
29   debug_level: @options.debug_level,
30   debug: @options.debug,
31   &msg
32 )
33   return unless debug_level >= level
34 
35   debug_stream = debug || ($stderr if USE_DEBUG_LOG)
36 
37   return unless debug_stream
38 
39   klass = self.class
40 
41   until (class_name = klass.name)
42     klass = klass.superclass
43   end
44 
45   message = +"(time=#{Time.now.utc} " \
46              "#{Loggable.log_identifiers} " \
47              "self=#{class_name}##{object_id}) "
48   message << msg.call << "\n"
49   message = "\e[#{COLORS[color]}m#{message}\e[0m" if color && debug_stream.respond_to?(:isatty) && debug_stream.isatty
50   debug_stream << message
51 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
53 def log_exception(ex, level: @options.debug_level, color: nil, debug_level: @options.debug_level, debug: @options.debug)
54   log(level: level, color: color, debug_level: debug_level, debug: debug) { ex.full_message }
55 end