Sha256: 0df4c9be1302d984fe494e6a84d0471b05254343883398671a48390f681fd6a4

Contents?: true

Size: 1.42 KB

Versions: 11

Compression:

Stored size: 1.42 KB

Contents

# frozen_string_literal: true
require 'logger'
require 'kubernetes-deploy/deferred_summary_logging'

module KubernetesDeploy
  class FormattedLogger < Logger
    include DeferredSummaryLogging

    def self.indent_four(str)
      "    " + str.to_s.gsub("\n", "\n    ")
    end

    def self.build(namespace = nil, context = nil, stream = $stderr, verbose_prefix: false)
      l = new(stream)
      l.level = level_from_env

      middle = if verbose_prefix
        if namespace.blank?
          raise ArgumentError, 'Must pass a namespace if logging verbosely'
        end
        if context.blank?
          raise ArgumentError, 'Must pass a context if logging verbosely'
        end

        "[#{context}][#{namespace}]"
      end

      l.formatter = proc do |severity, datetime, _progname, msg|
        colorized_line = ColorizedString.new("[#{severity}][#{datetime}]#{middle}\t#{msg}\n")

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

    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
    private_class_method :level_from_env
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
kubernetes-deploy-0.26.7 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.26.6 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.26.5 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.26.4 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.26.3 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.26.2 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.26.1 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.26.0 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.25.0 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.24.0 lib/kubernetes-deploy/formatted_logger.rb
kubernetes-deploy-0.23.0 lib/kubernetes-deploy/formatted_logger.rb