spacetraders.rb/lib/space_traders.rb

50 lines
1.0 KiB
Ruby

# frozen_string_literal: true
require 'syslog'
# require 'syslog/logger'
module SpaceTraders
class Log
CRIT = 0
ERROR = 1
WARN = 2
INFO = 3
DEBUG = 4
LEVELS = {
:crit => CRIT,
:error => ERROR,
:warn => WARN,
:info => INFO,
:debug => DEBUG,
}
LEVELS_STR = [CRIT, ERROR, WARN, INFO, DEBUG]
LEVELS.each do |level_str, level|
define_singleton_method(level_str) do |message|
SpaceTraders.log(level_str, message)
end
end
end
@@log_io = STDERR
@@log_min = Log::DEBUG
def self.log(level, message)
level_str = level.is_a?(Symbol) ? level : Log::LEVELS_STR[level]
level = level.is_a?(Integer) ? level : Log::LEVELS[level]
@@log_io.puts "#{Time.now.to_s} #{level_str.to_s.rjust(5).ljust(8)}: #{message}" if level <= @@log_min
end
log_io = STDERR
log_min = Log::DEBUG
Log.debug "log_io = #{log_io}"
Log.debug "log_min = #{log_min}"
end
Dir['lib/*.rb'].filter { _1 != 'lib/space_traders.rb' }.each do |f|
SpaceTraders::Log.warn("load #{f}")
load f
end