require 'logger' module Voltos module Logger @@levels = ["FATAL", "ERROR", "WARN", "INFO", "DEBUG"] @@levels.each do |level| define_singleton_method level.downcase.to_sym do |msg| logger.send(level.downcase.to_sym, 'Voltos Process - ' + msg) end end def self.logger return @logger if @logger @logger = ::Logger.new(STDOUT) @logger.level = ::Logger::WARN if level = ENV["LOG_LEVEL"] if @@levels.include? level.upcase @logger.level = ::Logger.const_get(level.upcase.to_sym) else @logger.warn "Log level '#{level.upcase}' is unknown. Supported levels are: #{levels.join(", ")}." end end @logger end end end