class BetterLogFormatter

Constants

Format
VERSION

Attributes

app_name[RW]
datetime_display[RW]

Public Class Methods

new(app_name) click to toggle source
Calls superclass method
# File lib/better_log_formatter.rb, line 10
def initialize(app_name)
  @app_name = app_name
  @datetime = datetime_display
  super()
end

Public Instance Methods

call(severity, datetime, _, message) click to toggle source
# File lib/better_log_formatter.rb, line 16
def call(severity, datetime, _, message)
  Format % [formatted_datetime(datetime), app_name, $$, custom_tags, sidekiq_tags, severity_label(severity), msg2str(message)]
end
custom_tag(tag_name, &block) click to toggle source
# File lib/better_log_formatter.rb, line 20
def custom_tag(tag_name, &block)
  @custom_tags ||= {}
  @custom_tags[tag_name] = block
  true
end

Private Instance Methods

custom_tags() click to toggle source
# File lib/better_log_formatter.rb, line 28
def custom_tags
  @custom_tags ||= {}
  @custom_tags.map { |_, block| block.call }.compact.map{ |tag| "[#{tag}]" }.join
end
formatted_datetime(datetime) click to toggle source
# File lib/better_log_formatter.rb, line 44
def formatted_datetime(datetime)
  format_datetime(datetime) if datetime_display
end
severity_label(severity) click to toggle source
# File lib/better_log_formatter.rb, line 48
def severity_label(severity)
  severity.is_a?(Fixnum) ? ::Logger::SEV_LABEL[severity] : severity
end
sidekiq_tags() click to toggle source
# File lib/better_log_formatter.rb, line 37
def sidekiq_tags
  return if Thread.current[:sidekiq_context].nil?

  tags = Thread.current[:sidekiq_context].flat_map(&:split) || []
  "[#{thread_tag}]#{tags.map { |tag| "[#{tag}]" }.join}"
end
thread_tag() click to toggle source
# File lib/better_log_formatter.rb, line 33
def thread_tag
  "TID-#{Thread.current.object_id.to_s(36)}"
end