Sha256: dba2e2bfb67a8cb18dc68428aee95f442f15a3f833551bc504d618f458145a6d

Contents?: true

Size: 1.08 KB

Versions: 6

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

require 'logger'
require 'active_support/tagged_logging'
require 'bbk/utils/log_formatter'

module BBK
  module Utils
    class Logger < ::Logger

      DEFAULT_NAME = 'bbk'
      DEFAULT_LEVEL = Logger::Severity::DEBUG

      def self.new(*args, **kwargs)
        instance = super
        ActiveSupport::TaggedLogging.new(instance)
      end

      def initialize(progname, level, io: STDOUT)
        io.sync = true
        super(io)
        self.progname = progname

        if level.is_a?(Integer)
          self.level = level
        else
          level = level.to_s.upcase
          level = level.present? ? level : 'INFO'
          self.level = Logger.const_get(level)
        end

        self.formatter = LogFormatter.new
        info "Using LOG_LEVEL=#{level}"
      end

      def silence(*_args)
        yield self
      end

      def self.default
        unless @default
          level = ENV.fetch('LOG_LEVEL', DEFAULT_LEVEL)
          @default = new(DEFAULT_NAME, level)
          @default.level = level
        end
        @default
      end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
bbk-utils-1.1.1.275386 lib/bbk/utils/logger.rb
bbk-utils-1.1.0.274232 lib/bbk/utils/logger.rb
bbk-utils-1.1.0.273317 lib/bbk/utils/logger.rb
bbk-utils-1.1.0.181866 lib/bbk/utils/logger.rb
bbk-utils-1.1.0.149110 lib/bbk/utils/logger.rb
bbk-utils-1.0.1.147183 lib/bbk/utils/logger.rb