Sha256: 7e8936b90fbd6474bce4db9bd7c3cf1c14828edc2bfd97108346d9bd78b0ff7e

Contents?: true

Size: 704 Bytes

Versions: 1

Compression:

Stored size: 704 Bytes

Contents

require 'logger'

module Miu
  module Logger
    module_function

    %w(debug info warn error fatal).each do |name|
      instance_eval <<-EOS
        def #{name}(msg)
          Miu.logger.#{name}(msg) if Miu.logger
        end
      EOS
    end

    def exception(msg, ex)
      error %(#{msg}\n#{format_exception(ex)})
    end

    def format_exception(ex)
      %(#{ex.class}: #{ex.to_s}\n#{ex.backtrace.join("\n")})
    end

    def formatter(severity, time, progname, msg)
      "[#{time}] #{msg}\n"
    end
  end

  class << self
    attr_accessor :logger
  end
  self.logger = ::Logger.new(STDERR)
  self.logger.level = ::Logger::INFO
  self.logger.formatter = Miu::Logger.method(:formatter)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
miu-0.1.0 lib/miu/logger.rb