Class: CmLogger::SidekiqFormatter

Inherits:
Logger::Formatter
  • Object
show all
Defined in:
lib/sidekiq_formatter.rb

Instance Method Summary collapse

Instance Method Details

#call(severity, time, program_name, message) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/sidekiq_formatter.rb', line 6

def call(severity, time, program_name, message)
  clean_message = message.gsub('"', '\'').gsub("\n", ' ').slice(0, 100)

  log_hash = {
    time: time.utc.iso8601(3),
    pid: ::Process.pid,
    tid: Thread.current.object_id.to_s(36),
    severity: severity,
    message: "\"#{clean_message}\""
  }.merge(context)

  log_hash.keys.map do |key|
    "#{key}=#{log_hash[key]}"
  end.join(" ") + "\n"
end

#contextObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/sidekiq_formatter.rb', line 22

def context
  c = Thread.current[:sidekiq_context]
  if c && c.any?
    tokens = c.map(&:split).flatten
    worker_name = tokens.find { |token| token.end_with?('Worker') }
    jid = tokens.find { |token| token.start_with?('JID') }

    {
      worker_name: worker_name,
      jid: jid
    }.compact
  else
    {}
  end
end