class Gush::Control::Logger

Constants

LABELS

Attributes

channel[R]
level[RW]
progname[RW]
redis[R]

Public Class Methods

new(redis, channel, level = DEBUG) click to toggle source
# File lib/gush/control/logger.rb, line 11
def initialize(redis, channel, level = DEBUG)
  @progname = nil
  @redis = redis
  @level = level
  @channel = channel
end

Public Instance Methods

<<(message) click to toggle source
# File lib/gush/control/logger.rb, line 35
def <<(message)
  write(message)
end
add(severity = UNKNOWN, message = nil, prog = nil) { || ... } click to toggle source
# File lib/gush/control/logger.rb, line 18
def add(severity = UNKNOWN, message = nil, prog = nil, &block)
  return true if severity < level

  if message.nil?
    if block_given?
      message = yield
    else
      message = prog
      prog = progname
    end
  end

  write(format_message(severity, prog || progname, message))
  true
end
Also aliased as: log
close() click to toggle source
# File lib/gush/control/logger.rb, line 63
def close
  # noop
end
debug(message = nil, &block) click to toggle source
# File lib/gush/control/logger.rb, line 39
def debug(message = nil, &block)
  add(DEBUG, message, nil, &block)
end
error(progname = nil, &block) click to toggle source
# File lib/gush/control/logger.rb, line 51
def error(progname = nil, &block)
  add(ERROR, nil, progname, &block)
end
fatal(progname = nil, &block) click to toggle source
# File lib/gush/control/logger.rb, line 55
def fatal(progname = nil, &block)
  add(FATAL, nil, progname, &block)
end
info(progname = nil, &block) click to toggle source
# File lib/gush/control/logger.rb, line 43
def info(progname = nil, &block)
  add(INFO, nil, progname, &block)
end
log(severity = UNKNOWN, message = nil, prog = nil, &block)
Alias for: add
unknown(progname = nil, &block) click to toggle source
# File lib/gush/control/logger.rb, line 59
def unknown(progname = nil, &block)
  add(UNKNOWN, nil, progname, &block)
end
warn(progname = nil, &block) click to toggle source
# File lib/gush/control/logger.rb, line 47
def warn(progname = nil, &block)
  add(WARN, nil, progname, &block)
end

Private Instance Methods

format_message(severity, prog, message) click to toggle source
# File lib/gush/control/logger.rb, line 77
def format_message(severity, prog, message)
  current_time = Time.now.utc
  severity = LABELS[severity]
  "%s, [%s.%s #%s] %5s -- %s: %s\n" % [severity[0], current_time.iso8601, current_time.usec, $$, severity, prog, message]
end
write(message) click to toggle source
# File lib/gush/control/logger.rb, line 73
def write(message)
  redis.rpush(channel, message)
end