Sha256: 16498306f12f65af13478eb376cf14d548033696a98c2116b88bf43174dffa40

Contents?: true

Size: 965 Bytes

Versions: 2

Compression:

Stored size: 965 Bytes

Contents

require 'logger'

module Lager
  def self.log_to dest=nil
    case dest
    when nil, 'stderr', 'STDERR'
      dest = $stderr
    when 'stdout', 'STDOUT'
      dest = $stdout
    when IO
      # do nothing
    when String
      # assume file path, do nothing
    else
      raise "unable to log_to #{dest} (#{dest.class})"
    end
    if defined?(@@log)
      l = Logger.new dest
      l.formatter = @@log.formatter
      l.level = @@log.level
      @@log = l
    else
      @@log = Logger.new dest
      @@log.formatter = proc { |sev, time, progname, msg|
        line = "[#{time.strftime('%Y-%m-%d %H:%M:%S')}] #{sev.to_s.upcase}: "
        line << "(#{progname}) " if progname
        line << msg << "\n"
      }
      @@log.level = Logger::WARN
    end
    @@log
  end

  def self.log_level=(sym)
    log_to unless defined?(@@log)
    level = Logger.const_get(sym.to_s.upcase)
    raise "unknown log level #{sym}" unless level
    @@log.level = level
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lager-0.0.1.2 lib/lager.rb
lager-0.0.1.1 lib/lager.rb