Sha256: e4ef0ab3c42187a2e852ecd2231832081e3cb1207ecb09b1751d407cc46935f2

Contents?: true

Size: 1.04 KB

Versions: 8

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true
require 'logger'

module KubernetesDeploy
  module Logger
    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods
      def logger=(other)
        @logger = other
      end

      def logger
        @logger ||= begin
          l = ::Logger.new($stderr)
          l.level = level_from_env
          l.formatter = proc do |severity, datetime, _progname, msg|
            log_text = "[#{severity}][#{datetime}]\t#{msg}"
            case severity
            when "FATAL" then "\033[0;31m#{log_text}\x1b[0m\n" # red
            when "ERROR", "WARN" then "\033[0;33m#{log_text}\x1b[0m\n" # yellow
            when "INFO" then "\033[0;36m#{log_text}\x1b[0m\n" # blue
            else "#{log_text}\n"
            end
          end
          l
        end
      end

      private

      def level_from_env
        return ::Logger::DEBUG if ENV["DEBUG"]

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

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
kubernetes-deploy-0.6.6 lib/kubernetes-deploy/logger.rb
kubernetes-deploy-0.6.5 lib/kubernetes-deploy/logger.rb
kubernetes-deploy-0.6.4 lib/kubernetes-deploy/logger.rb
kubernetes-deploy-0.6.3 lib/kubernetes-deploy/logger.rb
kubernetes-deploy-0.6.2 lib/kubernetes-deploy/logger.rb
kubernetes-deploy-0.6.1 lib/kubernetes-deploy/logger.rb
kubernetes-deploy-0.6.0 lib/kubernetes-deploy/logger.rb
kubernetes-deploy-0.5.0 lib/kubernetes-deploy/logger.rb