Sha256: d155ab8137c03d8ed9de69a17bf18d06bf30873758bbf24c12642cb41732d2b6

Contents?: true

Size: 989 Bytes

Versions: 14

Compression:

Stored size: 989 Bytes

Contents

require 'logger'

module Logster
  class Logger < ::Logger
    LOGSTER_ENV = "logster_env".freeze

    attr_accessor :store, :skip_store

    def initialize(store)
      super(nil)
      @store = store
    end

    def chain(logger)
      @chained ||= []
      @chained << logger
    end


    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
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
logster-0.8.0 lib/logster/logger.rb
logster-0.1.8 lib/logster/logger.rb
logster-0.1.7 lib/logster/logger.rb
logster-0.1.6 lib/logster/logger.rb
logster-0.1.5 lib/logster/logger.rb
logster-0.1.4 lib/logster/logger.rb
logster-0.1.3 lib/logster/logger.rb
logster-0.1.2 lib/logster/logger.rb
logster-0.1.1 lib/logster/logger.rb
logster-0.1.0 lib/logster/logger.rb
logster-0.0.13 lib/logster/logger.rb
logster-0.0.12 lib/logster/logger.rb
logster-0.0.11 lib/logster/logger.rb
logster-0.0.10 lib/logster/logger.rb