class Stackify::LoggerClient

Public Class Methods

new() click to toggle source
# File lib/stackify/logger_client.rb, line 4
def initialize
  begin
    @@errors_governor = Stackify::ErrorsGovernor.new
    @@transport = Stackify::TransportSelector.new(Stackify.configuration.transport).transport
    Stackify.internal_log :info, "[LoggerClient] initialize: #{@@transport}"
    return if @@transport.nil?
  rescue => ex
    Stackify.log_internal_error "[LoggerClient] initialize exception = #{ex.inspect}"
  end
end

Public Instance Methods

get_transport() click to toggle source
# File lib/stackify/logger_client.rb, line 53
def get_transport
  return if @@transport.nil?
  @@transport
end
log(num_level, level, msg, call_trace) click to toggle source

This function is responsible in displaying log messages based on the level criteria @param num_level [Integer] level of the clients Rails.logger @param level [String] level coming from array of levels(debug info warn error fatal unknown) that we are going to filter with num_level

So we filter all logs from num_level up to this level

@param msg [Integer] log messages @param call_trace [Object] return the current execution stack

# File lib/stackify/logger_client.rb, line 21
def log num_level, level, msg, call_trace
  display_log = true
  log_appender = false
  buffer_log = false
  if defined? Rails
    display_log = false if Stackify.configuration.stdout_output
    log_appender = true if defined?(Logging)
    buffer_log = true if Stackify.configuration.buffered_logger
    unless buffer_log
      if Gem::Version.new(Rails::VERSION::STRING) >= Gem::Version.new('4.0')
        if display_log && log_appender
          puts msg if num_level <= Logger.const_get(level.upcase).to_i
        elsif display_log && log_appender == false
          puts msg if num_level <= Logger.const_get(level.upcase).to_i
        end
      end
    end
  else
    puts msg if num_level <= Logger.const_get(level.upcase).to_i
  end

  return if @@transport.nil?
  task = log_message_task level, msg, call_trace
  @@transport.log level, msg, call_trace, task
end
log_exception(level= :error, ex) click to toggle source
# File lib/stackify/logger_client.rb, line 47
def log_exception level= :error, ex
  return if @@transport.nil?
  task = log_exception_task level, ex
  @@transport.log_exception level, ex, task
end

Private Instance Methods

acceptable?(level, msg) click to toggle source
# File lib/stackify/logger_client.rb, line 60
def acceptable? level, msg
  Stackify.is_valid? && is_correct_log_level?(level) &&
    is_not_internal_log_message?(msg)
end
is_correct_log_level?(level) click to toggle source
# File lib/stackify/logger_client.rb, line 69
def is_correct_log_level? level
  config_level = Logger.const_get Stackify.configuration.log_level.to_s.upcase
  current_level = Logger.const_get level.to_s.upcase
  current_level >= config_level
end
is_not_internal_log_message?(msg) click to toggle source
# File lib/stackify/logger_client.rb, line 65
def is_not_internal_log_message? msg
  msg.try(:index, ::Stackify::INTERNAL_LOG_PREFIX).nil?
end
log_exception_task(level, ex, trans_id=nil, log_uuid=nil) click to toggle source
# File lib/stackify/logger_client.rb, line 80
def log_exception_task level, ex, trans_id=nil, log_uuid=nil
  return if @@transport.nil?
  @@transport.log_exception_task level, ex, trans_id, log_uuid
end
log_message_task(level, msg, call_trace, trans_id=nil, log_uuid=nil) click to toggle source
# File lib/stackify/logger_client.rb, line 75
def log_message_task level, msg, call_trace, trans_id=nil, log_uuid=nil
  return if @@transport.nil?
  @@transport.log_message_task level, msg, call_trace, trans_id, log_uuid
end