Sha256: 155ebc3b4f363b02ca65fb74751a24ae863ca20397b9b588fb035c286614000e

Contents?: true

Size: 1.15 KB

Versions: 15

Compression:

Stored size: 1.15 KB

Contents

module Lines
  # Backward-compatible logger
  # http://ruby-doc.org/stdlib-2.0/libdoc/logger/rdoc/Logger.html#method-i-log
  class Logger
    LEVELS = {
      0 => :debug,
      1 => :info,
      2 => :warn,
      3 => :error,
      4 => :fatal,
      5 => :unknown,
    }

    def initialize(line)
      @line = line
    end

    def log(severity, message = nil, progname = nil, &block)
      pri = LEVELS[severity] || severity
      if block_given?
        progname = message
        message = yield.to_s rescue $!.to_s
      end

      data = { pri: pri }
      data[:app] = progname if progname
      data[:msg] = message if message

      @line.log(data)
    end

    LEVELS.values.each do |level|
      define_method(level) do |message=nil, &block|
        log(level, message, &block)
      end
    end

    alias << info
    alias unknown info

    def noop(*a); true end
    %w[add
      clone
      datetime_format
      datetime_format=
      debug?
      info?
      error?
      fatal?
      warn?
      level
      level=
      progname
      progname=
      sev_threshold
      sev_threshold=
    ].each do |op|
      alias_method(op, :noop)
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
lines-0.2.0 lib/lines/logger.rb
lines-0.1.27 lib/lines/logger.rb
lines-0.1.26 lib/lines/logger.rb
lines-0.1.25 lib/lines/logger.rb
lines-0.1.24 lib/lines/logger.rb
lines-0.1.23 lib/lines/logger.rb
lines-0.1.22 lib/lines/logger.rb
lines-0.1.21 lib/lines/logger.rb
lines-0.1.20 lib/lines/logger.rb
lines-0.1.19 lib/lines/logger.rb
lines-0.1.18 lib/lines/logger.rb
lines-0.1.16 lib/lines/logger.rb
lines-0.1.15 lib/lines/logger.rb
lines-0.1.1 lib/lines/logger.rb
lines-0.1.0 lib/lines/logger.rb