Class: OpenTrace::TraceFormatter
- Inherits:
-
Object
- Object
- OpenTrace::TraceFormatter
- Defined in:
- lib/opentrace/trace_formatter.rb
Overview
Instance Method Summary collapse
- #call(severity, datetime, progname, msg) ⇒ Object
- #clear_tags! ⇒ Object
- #current_tags ⇒ Object
-
#initialize(original_formatter = nil) ⇒ TraceFormatter
constructor
A new instance of TraceFormatter.
- #pop_tags(count = 1) ⇒ Object
-
#push_tags(*tags) ⇒ Object
Delegate ActiveSupport::TaggedLogging::Formatter interface to the original formatter so that Rails::Rack::Logger#push_tags works when TraceFormatter replaces the logger’s formatter.
- #tagged(*tags) ⇒ Object
- #tags_text ⇒ Object
Constructor Details
#initialize(original_formatter = nil) ⇒ TraceFormatter
Returns a new instance of TraceFormatter.
11 12 13 |
# File 'lib/opentrace/trace_formatter.rb', line 11 def initialize(original_formatter = nil) @original = original_formatter || ::Logger::Formatter.new end |
Instance Method Details
#call(severity, datetime, progname, msg) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/opentrace/trace_formatter.rb', line 54 def call(severity, datetime, progname, msg) formatted = @original.call(severity, datetime, progname, msg) trace_prefix = build_trace_prefix if trace_prefix && formatted.is_a?(String) # Append trace context before the trailing newline if formatted.end_with?("\n") "#{formatted.chomp} #{trace_prefix}\n" else "#{formatted} #{trace_prefix}" end else formatted end rescue StandardError formatted || @original.call(severity, datetime, progname, msg) end |
#clear_tags! ⇒ Object
42 43 44 |
# File 'lib/opentrace/trace_formatter.rb', line 42 def @original. if @original.respond_to?(:clear_tags!) end |
#current_tags ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/opentrace/trace_formatter.rb', line 26 def if @original.respond_to?(:current_tags) @original. else [] end end |
#pop_tags(count = 1) ⇒ Object
22 23 24 |
# File 'lib/opentrace/trace_formatter.rb', line 22 def (count = 1) @original.(count) if @original.respond_to?(:pop_tags) end |
#push_tags(*tags) ⇒ Object
Delegate ActiveSupport::TaggedLogging::Formatter interface to the original formatter so that Rails::Rack::Logger#push_tags works when TraceFormatter replaces the logger’s formatter.
18 19 20 |
# File 'lib/opentrace/trace_formatter.rb', line 18 def (*) @original.(*) if @original.respond_to?(:push_tags) end |
#tagged(*tags) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/opentrace/trace_formatter.rb', line 34 def tagged(*) if @original.respond_to?(:tagged) @original.tagged(*) { yield } else yield end end |
#tags_text ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/opentrace/trace_formatter.rb', line 46 def if @original.respond_to?(:tags_text) @original. else "" end end |