module SplunkLogger::Client::Log

Methods to log events to Splunk

Public Instance Methods

debug(message) click to toggle source

Log event as debug

Example:

SplunkLogger.debug("hello world")
# File lib/splunk_logger/client/log.rb, line 19
def debug(message)
  queue_or_send_message('debug', message)
end
error(message) click to toggle source

Log event as error

Example:

SplunkLogger.error("hello world")
# File lib/splunk_logger/client/log.rb, line 43
def error(message)
  queue_or_send_message('error', message)
end
info(message) click to toggle source

Log event as info

Example:

SplunkLogger.info("hello world")
# File lib/splunk_logger/client/log.rb, line 27
def info(message)
  queue_or_send_message('info', message)
end
log(message) click to toggle source

Log event with default level

Example:

SplunkLogger.log("hello world")
# File lib/splunk_logger/client/log.rb, line 11
def log(message)
  queue_or_send_message(@default_level, message)
end
warn(message) click to toggle source

Log event as warning

Example:

SplunkLogger.warn("hello world")
# File lib/splunk_logger/client/log.rb, line 35
def warn(message)
  queue_or_send_message('warn', message)
end

Private Instance Methods

queue_or_send_message(level, message) click to toggle source
# File lib/splunk_logger/client/log.rb, line 48
def queue_or_send_message(level, message)
  if delayed?
    @message_queue << {severity: level, message: message}
    @message_queue.shift if @message_queue.length > @max_queue_size + @max_batch_size
    trigger_send_log if @message_queue.length >= @max_batch_size && @current_message_size == 0
    return true
  else
    send_log_now({severity: level, message: message})
  end
end
trigger_send_log() click to toggle source
# File lib/splunk_logger/client/log.rb, line 59
def trigger_send_log
  return if @semaphore.locked?
  Thread.new do
    @semaphore.synchronize do
      send_log
    end
  end
end