class Tumugi::Logger

Attributes

workflow_id[RW]

Public Class Methods

new() click to toggle source
# File lib/tumugi/logger/logger.rb, line 15
def initialize
  @formatters = {
    text: text_formatter,
    json: json_formatter
  }
  init
end

Public Instance Methods

init(output: STDOUT, format: :text) click to toggle source
# File lib/tumugi/logger/logger.rb, line 23
def init(output: STDOUT, format: :text)
  @logger = ::Logger.new(output)
  @logger.level = ::Logger::INFO
  @logger.formatter = @formatters[format]
end
quiet!() click to toggle source
# File lib/tumugi/logger/logger.rb, line 33
def quiet!
  @logger = ::Logger.new(nil)
end
verbose!() click to toggle source
# File lib/tumugi/logger/logger.rb, line 29
def verbose!
  @logger.level = ::Logger::DEBUG
end

Private Instance Methods

json_formatter() click to toggle source
# File lib/tumugi/logger/logger.rb, line 45
def json_formatter
  Proc.new { |level, datetime, program_name, msg|
    hash = { time: datetime, level: level, message: msg }
    hash[:program_name] = program_name unless program_name.nil?
    hash[:workflow] = workflow_id unless workflow_id.nil?
    "#{JSON.generate(hash)}\n"
  }
end
text_formatter() click to toggle source
# File lib/tumugi/logger/logger.rb, line 39
def text_formatter
  Proc.new { |level, datetime, program_name, msg|
    "#{datetime} [#{level}]#{' (' + program_name + ')' unless program_name.nil?} #{msg}\n"
  }
end