module StatsCloud::LoggerHelper

This helper works to help log errors and info about StatsCloud service work.

Attributes

last_error_log_at[R]
last_info_log_at[R]

Public Instance Methods

console_logger() click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 14
def console_logger
  @console_logger ||= create_logger_instance(STDOUT)
end
log_error(error_message) click to toggle source

Logs errors with 10 minutes interval

# File lib/statscloud/helpers/logger_helper.rb, line 26
def log_error(error_message)
  logged = log_with_interval(error_type, last_error_log_at, error_message)
  update_last_error_at && log_stop_logging("errors") if logged
  false
end
log_info(info_message) click to toggle source

Logs information with 10 minutes interval

# File lib/statscloud/helpers/logger_helper.rb, line 19
def log_info(info_message)
  logged = log_with_interval(info_type, last_info_log_at, info_message)
  update_last_info_at && log_stop_logging("information") if logged
  true
end
logger(output = default_output, files_to_keep = 10, size_to_age = 1_024_000) click to toggle source

Log information about work to standard output

# File lib/statscloud/helpers/logger_helper.rb, line 9
def logger(output = default_output, files_to_keep = 10, size_to_age = 1_024_000)
  file_utils.mkdir_p "log"
  @logger ||= create_logger_instance(output, files_to_keep, size_to_age)
end

Private Instance Methods

can_log?(last_log_at) click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 44
def can_log?(last_log_at)
  last_log_at.nil? || Time.now.to_i - last_log_at > 600
end
create_logger_instance(output, files_to_keep = nil, size_to_age = nil) click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 60
def create_logger_instance(output, files_to_keep = nil, size_to_age = nil)
  logger_service.new(output, files_to_keep, size_to_age).tap do |log|
    log.progname = "StatsCloud"
  end
end
default_output() click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 36
def default_output
  File.join("log", "statscloud.log")
end
error_type() click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 70
def error_type
  Logger::ERROR
end
file_utils() click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 78
def file_utils
  FileUtils
end
info_type() click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 66
def info_type
  Logger::INFO
end
log_stop_logging(message_type) click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 48
def log_stop_logging(message_type)
  logger.info "Logging #{message_type} from #{self.class} will be stopped for 10 minutes."
end
log_with_interval(type, last_log_at, message) click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 40
def log_with_interval(type, last_log_at, message)
  logger.add(type, message) if can_log?(last_log_at)
end
logger_service() click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 74
def logger_service
  Logger
end
update_last_error_at() click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 56
def update_last_error_at
  @last_error_log_at = Time.now.to_i
end
update_last_info_at() click to toggle source
# File lib/statscloud/helpers/logger_helper.rb, line 52
def update_last_info_at
  @last_info_log_at = Time.now.to_i
end