class HLogger
Constants
- HLOG_MAXSIZE
log on screen if filename is stdout
Public Class Methods
new(filename, level: 'DEBUG')
click to toggle source
# File lib/hengine/hlogger.rb, line 7 def initialize(filename, level: 'DEBUG') @levels = self._levels @levelToNum = self._toNum @level = @levelToNum[level] return if(filename == "stdout") filename = "logger.txt" if(filename == nil) if (File.exist?(filename) and File.size(filename).to_f / 1000000 >= HLOG_MAXSIZE) timestamp = DateTime.now.strftime "%d-%m-%Y-%H.%M.%S" File.rename(filename, "#{filename}.#{timestamp}") end @file = File.new(filename, "a+") end
Public Instance Methods
<<(str, level = 'DEBUG')
click to toggle source
hlogger << “hello world” hlogger.<<(“hello world”, “DEBUG”) # warning: if i put some space doesn't work
# File lib/hengine/hlogger.rb, line 68 def << (str, level = 'DEBUG') level = self.toNum(level) if(level.class == String) return if(level > @level) t = self.timestamp strLevel = self.level(level) if(@file) @file << "[#{strLevel} #{t}]$ #{str}\n" else case self.level(level) when "ERROR" puts "[#{strLevel} hypersonic]$ #{str}".red when "FATAL" puts "[#{strLevel} hypersonic]$ #{str}".red when "DEBUG" puts "[#{strLevel} hypersonic]$ #{str}".green when "WARNING" puts "[#{strLevel} hypersonic]$ #{str}".hight_cyan when "INFO" puts "[#{strLevel} hypersonic]$ #{str}".hight_purple else puts "[#{strLevel} hypersonic]$ #{str}".white end end return self end
_levels()
click to toggle source
# File lib/hengine/hlogger.rb, line 20 def _levels levels = [] levels << "OFF" levels << "FATAL" levels << "ERROR" levels << "WARNING" levels << "INFO" levels << "DEBUG" levels << "DEBUG2" levels << "DEBUG3" levels << "DEBUG4" levels << "ALL" return levels end
_toNum()
click to toggle source
# File lib/hengine/hlogger.rb, line 36 def _toNum levelToNum = {} self._levels.each_with_index do |level, i| levelToNum[level] = i end return levelToNum end
close()
click to toggle source
# File lib/hengine/hlogger.rb, line 57 def close @file.close if(@file) end
level(value)
click to toggle source
# File lib/hengine/hlogger.rb, line 51 def level(value) return @levels[value] end
timestamp()
click to toggle source
# File lib/hengine/hlogger.rb, line 61 def timestamp return DateTime.now.strftime "%d-%m-%Y %H:%M:%S" end
toNum(strLevel)
click to toggle source
# File lib/hengine/hlogger.rb, line 47 def toNum(strLevel) return @levelToNum[strLevel] end
write(str, level)
click to toggle source
You can use this function more beautiful than .<<(…)
# File lib/hengine/hlogger.rb, line 101 def write(str, level) self.<<(str, level) end