module Confiner::Logger

Public Class Methods

log_to() click to toggle source

Where to output the log

# File lib/confiner/logger.rb, line 19
def self.log_to
  @out_file
end
log_to=(file) click to toggle source
# File lib/confiner/logger.rb, line 23
def self.log_to=(file)
  file = File.open(file.strip, 'a+t') if file.is_a?(String)

  @out_file = file
end

Public Instance Methods

log(level, message, indentation = 1) click to toggle source

Log something with a specific level

# File lib/confiner/logger.rb, line 6
def log(level, message, indentation = 1)
  color = "\e[0;35m" # default purple
  color = "\e[0;33m" if %i[warn warning].include?(level) # yellow
  color = "\e[0;31m" if %i[err error fatal].include?(level) # red

  raise ArgumentError, 'Level must be less than 12 characters' if level.size > 12

  output = "(#{Time.now.strftime('%F %H:%M:%S')})\t#{color}#{level.to_s.upcase}#{' ' * (12 - level.size)}\e[m#{"\t" * indentation}#{message}"

  Logger.log_to.puts(output)
end
run(action) click to toggle source
Calls superclass method
# File lib/confiner/logger.rb, line 29
def run(action)
  log :plugin, "#{self.class}##{action}"
  super
  log :plugin, "#{self.class}##{action} Done"
end