class Logster::Logger

Constants

LOGSTER_ENV

Attributes

skip_store[RW]
store[RW]

Public Class Methods

new(store) click to toggle source
Calls superclass method
# File lib/logster/logger.rb, line 9
def initialize(store)
  super(nil)
  @store = store
end

Public Instance Methods

add(severity, message, progname) { || ... } click to toggle source
# File lib/logster/logger.rb, line 20
def add(severity, message, progname, &block)
  if severity < @level
    return true
  end

  if @chained
    i = 0
    # micro optimise for logging
    while i < @chained.length
      # TODO double yielding blocks
      @chained[i].add(severity, message, progname, &block)
      i += 1
    end
  end

  progname ||= @progname
  if message.nil?
    if block_given?
      message = yield
    else
      message = progname
      progname = @progname
    end
  end

  return if @skip_store

  @store.report(severity, progname, message, {
    env: Thread.current[LOGSTER_ENV]
  })

end
chain(logger) click to toggle source
# File lib/logster/logger.rb, line 14
def chain(logger)
  @chained ||= []
  @chained << logger
end