class SerfHandler

Base class for processing serf events

Attributes

event[R]
name[R]
role[R]

Public Class Methods

new(log_file = nil) click to toggle source
# File lib/serf_handler.rb, line 9
def initialize(log_file = nil)
  @logger = create_logger(log_file)
  set_logging if @logger.is_a? Logger
  @logger.level = Logger::INFO
  @name = ENV['SERF_SELF_NAME']
  @role = ENV['SERF_TAG_ROLE'] || ENV['SERF_SELF_ROLE']
  @event = case ENV['SERF_EVENT']
           when 'user'  then ENV['SERF_USER_EVENT']
           when 'query' then ENV['SERF_QUERY_NAME']
           else              ENV['SERF_EVENT'].gsub(/-/, '_')
           end
end

Public Instance Methods

create_logger(log_file) click to toggle source
# File lib/serf_handler.rb, line 29
def create_logger(log_file)
  if log_file
    log_file.is_a?(String) ? Logger.new(log_file) : log_file
  else
    Logger.new(STDOUT)
  end
end
error(msg) click to toggle source
# File lib/serf_handler.rb, line 46
def error(msg)
  @logger.error(msg)
end
info(msg) click to toggle source
# File lib/serf_handler.rb, line 37
def info(msg)
  @logger.info(msg)
end
Also aliased as: log
log(msg)
Alias for: info
response(msg) click to toggle source
# File lib/serf_handler.rb, line 50
def response(msg)
  if msg.bytesize > 1024
    message = 'message exceeds limit of 1024 bytes.'
    warn message
    puts message
  else
    puts msg
  end
end
set_logging() click to toggle source
# File lib/serf_handler.rb, line 22
def set_logging
  @logger.formatter = proc do |sv, datetime, _pn, msg|
    "[#{datetime.strftime('%Y-%m-%d %H:%M:%S.%L')}][#{sv}] #{msg}\n"
  end
  @logger.level = Logger::INFO
end
warn(msg) click to toggle source
# File lib/serf_handler.rb, line 42
def warn(msg)
  @logger.warn(msg)
end