Class: JobWorkflow::Logger::JsonFormatter

Inherits:
Logger::Formatter
  • Object
show all
Includes:
ActiveSupport::TaggedLogging::Formatter
Defined in:
lib/job_workflow/logger.rb

Overview

JSON formatter for structured logging output.

Instance Method Summary collapse

Constructor Details

#initialize(log_tags: []) ⇒ JsonFormatter

: (?log_tags: Array) -> void



40
41
42
43
# File 'lib/job_workflow/logger.rb', line 40

def initialize(log_tags: [])
  @log_tags = log_tags
  super()
end

Instance Method Details

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

: (String, Time, String, String | Hash[untyped, untyped]) -> String



46
47
48
49
50
51
# File 'lib/job_workflow/logger.rb', line 46

def call(severity, time, progname, msg)
  base_hash = build_base_hash(severity, time, progname)
  tags_hash = build_tags_hash
  msg_hash = build_msg_hash(msg)
  "#{JSON.generate({ **base_hash, **tags_hash, **msg_hash })}\n"
end