class KubeDeployTools::FormattedLogger

Public Class Methods

build(context: nil, namespace: nil, stream: $stderr) click to toggle source
# File lib/kube_deploy_tools/formatted_logger.rb, line 12
def self.build(context: nil, namespace: nil, stream: $stderr)
  l = new(stream)
  l.level = level_from_env

  l.formatter = proc do |severity, datetime, _progname, msg|
    middle = context ? "[#{context}]" : ""
    if ! namespace.nil? && namespace != 'default'
      middle += "[#{namespace}]"
    end

    dt = datetime.strftime('%F %T')
    colorized_line = ColorizedString.new("[#{severity}][#{dt}]#{middle} #{msg}\n")

    case severity
    when "FATAL"
      ColorizedString.new("[#{severity}][#{dt}]#{middle} ").red + "#{msg}\n"
    when "ERROR"
      colorized_line.red
    when "WARN"
      colorized_line.yellow
    else
      colorized_line
    end
  end
  l
end

Private Class Methods

level_from_env() click to toggle source
# File lib/kube_deploy_tools/formatted_logger.rb, line 39
def self.level_from_env
  return ::Logger::DEBUG if ENV["DEBUG"]

  if ENV["LEVEL"]
    ::Logger.const_get(ENV["LEVEL"].upcase)
  else
    ::Logger::INFO
  end
end