Class: AdvancedRubyCommandHandler::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/advanced_ruby_command_handler/app/logger.rb

Constant Summary collapse

COLORS =
{
  :default => "\e[38m",
  :white => "\e[39m",
  :black => "\e[30m",
  :red => "\e[31m",
  :green => "\e[32m",
  :brown => "\e[33m",
  :blue => "\e[34m",
  :magenta => "\e[35m",
  :cyan => "\e[36m",
  :gray => "\e[37m",
  :yellow => "\e[33m"
}.freeze
MODES =
{
  :info => :cyan,
  :error => :red,
  :warn => :yellow,
  :check => :green
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(mode = :console, write_targets = { :errors => "logs/errors.txt", :informations => "logs/infos.txt" }) ⇒ Logger

Returns a new instance of Logger.



29
30
31
32
# File 'lib/advanced_ruby_command_handler/app/logger.rb', line 29

def initialize(mode = :console, write_targets = { :errors => "logs/errors.txt", :informations => "logs/infos.txt" })
  @mode = mode.to_sym
  @write_targets = write_targets if @mode == :file
end

Instance Attribute Details

#modeObject (readonly)

Returns the value of attribute mode.



7
8
9
# File 'lib/advanced_ruby_command_handler/app/logger.rb', line 7

def mode
  @mode
end

#write_targetsObject

Returns the value of attribute write_targets.



8
9
10
# File 'lib/advanced_ruby_command_handler/app/logger.rb', line 8

def write_targets
  @write_targets
end

Instance Method Details

#write(message, write_target = :informations) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/advanced_ruby_command_handler/app/logger.rb', line 38

def write(message, write_target = :informations)
  return Logger.new(:console).warn("The file logs aren't available on #{@mode} mode") unless @mode == :file

  time = Time.now.strftime("%Y-%m-%d-%H:%M:%S")

  FileUtils.mkdir_p File.dirname @write_targets[write_target]

  File.open(@write_targets[write_target], "w") unless File.exist? @write_targets[write_target]

  File.open(@write_targets[write_target], "a+") do |file|
    file.write("#{time} - #{write_target.to_s.upcase} : #{message}\n")
  end
end