Sha256: 5fae4d7aa8c60287cb8885c54dc9cf2e4fe9f7de230d16d956434b8da2a16d8b

Contents?: true

Size: 804 Bytes

Versions: 9

Compression:

Stored size: 804 Bytes

Contents

require 'logger'

module Heirloom
  class HeirloomLogger
    
    require 'forwardable'

    extend Forwardable

    def_delegators :@logger, :debug, :error, :info, :warn

    def initialize(args = {})
      @log_level = args[:log_level] ||= 'info'
      @logger    = args[:logger] ||= new_logger(args)
    end

    def level=(level_as_string)
      @log_level = level_as_string
      @logger.level = logger_level
    end

    private

    def new_logger(args)
      Logger.new($stdout).tap do |l|
        l.datetime_format = '%Y-%m-%dT%H:%M:%S%z'
        l.formatter = proc do |severity, datetime, progname, msg|
          "#{datetime} #{severity} : #{msg}\n"
        end
        l.level = logger_level
      end
    end

    def logger_level
      Logger.const_get @log_level.upcase
    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
heirloom-0.12.7 lib/heirloom/logger.rb
heirloom-0.12.5 lib/heirloom/logger.rb
heirloom-0.12.4 lib/heirloom/logger.rb
heirloom-0.12.3 lib/heirloom/logger.rb
heirloom-0.12.2 lib/heirloom/logger.rb
heirloom-0.12.1 lib/heirloom/logger.rb
heirloom-0.12.0 lib/heirloom/logger.rb
heirloom-0.11.2 lib/heirloom/logger.rb
heirloom-0.11.1 lib/heirloom/logger.rb