Module: Faraday::DetailedLogger::TaggedLogging::Formatter

Defined in:
lib/faraday/detailed_logger/tagged_logging.rb

Constant Summary collapse

BLANK =
lambda do |value|
  value.respond_to?(:empty?) ? !!value.empty? : !value
end

Instance Method Summary collapse

Instance Method Details

#call(severity, timestamp, progname, msg) ⇒ Object



19
20
21
# File 'lib/faraday/detailed_logger/tagged_logging.rb', line 19

def call(severity, timestamp, progname, msg)
  super(severity, timestamp, progname, "#{tags_text}#{msg}")
end

#clear_tags!Object



40
41
42
# File 'lib/faraday/detailed_logger/tagged_logging.rb', line 40

def clear_tags!
  current_tags.clear
end

#current_tagsObject



44
45
46
47
# File 'lib/faraday/detailed_logger/tagged_logging.rb', line 44

def current_tags
  @thread_key ||= "faraday_detailed_logger_tags:#{object_id}"
  Thread.current[@thread_key] ||= []
end

#pop_tags(size = 1) ⇒ Object



36
37
38
# File 'lib/faraday/detailed_logger/tagged_logging.rb', line 36

def pop_tags(size = 1)
  current_tags.pop size
end

#push_tags(*tags) ⇒ Object



30
31
32
33
34
# File 'lib/faraday/detailed_logger/tagged_logging.rb', line 30

def push_tags(*tags)
  tags.flatten.reject(&BLANK).tap do |new_tags|
    current_tags.concat new_tags
  end
end

#tagged(*tags) ⇒ Object



23
24
25
26
27
28
# File 'lib/faraday/detailed_logger/tagged_logging.rb', line 23

def tagged(*tags)
  new_tags = push_tags(*tags)
  yield self
ensure
  pop_tags(new_tags.size)
end