Module: Pangea::Logging::Formatters
- Included in:
- StructuredLogger
- Defined in:
- lib/pangea/logging/formatters.rb
Constant Summary collapse
- LEVEL_ROLES =
{ debug: :debug, info: :info, warn: :warning, error: :error, fatal: :replace }.freeze
- EXCLUDED_CONTEXT_KEYS =
%i[ timestamp level message correlation_id pid thread_id ruby_version ].freeze
Instance Method Summary collapse
- #format_json(entry) ⇒ Object
- #format_logfmt(entry) ⇒ Object
- #format_pretty(entry) ⇒ Object
- #format_simple(entry) ⇒ Object
Instance Method Details
#format_json(entry) ⇒ Object
49 50 51 |
# File 'lib/pangea/logging/formatters.rb', line 49 def format_json(entry) JSON.generate(entry) end |
#format_logfmt(entry) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/pangea/logging/formatters.rb', line 53 def format_logfmt(entry) entry.map { |k, v| value = v.to_s.include?(' ') ? "\"#{v}\"" : v "#{k}=#{value}" }.join(' ') end |
#format_pretty(entry) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/pangea/logging/formatters.rb', line 35 def format_pretty(entry) = Time.parse(entry[:timestamp]).strftime('%Y-%m-%d %H:%M:%S.%L') level = entry[:level].ljust(5) level_role = LEVEL_ROLES[entry[:level].downcase.to_sym] context_str = build_context_string(entry) if defined?(Boreal) && level_role level = Boreal.paint(level, level_role) end "#{} [#{level}] #{entry[:message]}#{context_str}" end |
#format_simple(entry) ⇒ Object
60 61 62 |
# File 'lib/pangea/logging/formatters.rb', line 60 def format_simple(entry) "#{entry[:level]} - #{entry[:message]}" end |