Sha256: d3040303b35f1b658c6819f1e268448538ad17e81cf1508cf837a17c6c7a8534

Contents?: true

Size: 913 Bytes

Versions: 3

Compression:

Stored size: 913 Bytes

Contents

module Faye
  module Logging

    DEFAULT_LOG_LEVEL = :error

    LOG_LEVELS = {
      :error  => 3,
      :warn   => 2,
      :info   => 1,
      :debug  => 0
    }

    class << self
      attr_writer :log_level

      def log_level
        @log_level || DEFAULT_LOG_LEVEL
      end
    end

    attr_writer :log_level

    def log_level
      @log_level || Logging.log_level
    end

    def log(message_args, level)
      return unless Faye.logger
      return if LOG_LEVELS[log_level] > LOG_LEVELS[level]

      message = message_args.shift.gsub(/\?/) do
        Faye.to_json(message_args.shift)
      end

      timestamp = Time.now.strftime('%Y-%m-%d %H:%M:%S')
      banner = " [#{ level.to_s.upcase }] [#{ self.class.name }] "

      Faye.logger.call(timestamp + banner + message)
    end

    LOG_LEVELS.each do |level, value|
      define_method(level) { |*args| log(args, level) }
    end

  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
faye-0.8.11 lib/faye/mixins/logging.rb
face-faye-0.8.9 lib/faye/mixins/logging.rb
faye-0.8.9 lib/faye/mixins/logging.rb