Module: Gemstash::Logging

Overview

:nodoc:

Defined Under Namespace

Classes: RackMiddleware, StreamLogger

Constant Summary collapse

LEVELS =
{
  debug: Logger::DEBUG,
  info: Logger::INFO,
  warn: Logger::WARN,
  error: Logger::ERROR,
  fatal: Logger::FATAL
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.loggerObject



47
48
49
# File 'lib/gemstash/logging.rb', line 47

def self.logger
  @logger ||= setup_logger($stdout)
end

.resetObject



51
52
53
54
# File 'lib/gemstash/logging.rb', line 51

def self.reset
  @logger.close if @logger
  @logger = nil
end

.setup_logger(logfile) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/gemstash/logging.rb', line 33

def self.setup_logger(logfile)
  @logger = Logger.new(logfile, 2, 10_485_760)
  @logger.level = Logger::INFO
  @logger.datetime_format = "%d/%b/%Y:%H:%M:%S %z"
  @logger.formatter = proc do |severity, datetime, _progname, msg|
    if msg.end_with?("\n")
      "[#{datetime}] - #{severity} - #{msg}"
    else
      "[#{datetime}] - #{severity} - #{msg}\n"
    end
  end
  @logger
end

Instance Method Details

#logObject



23
24
25
# File 'lib/gemstash/logging.rb', line 23

def log
  Gemstash::Logging.logger
end

#log_error(message, error, level: :error) ⇒ Object



27
28
29
30
31
# File 'lib/gemstash/logging.rb', line 27

def log_error(message, error, level: :error)
  log.add(LEVELS[level]) do
    "#{message} - #{error.message} (#{error.class})\n  #{error.backtrace.join("\n  ")}"
  end
end