Added logfile support
This commit is contained in:
@@ -35,6 +35,7 @@ module Logger
|
|||||||
|
|
||||||
@@min_level : LOG_LEVEL = LOG_LEVELS["INFO"]
|
@@min_level : LOG_LEVEL = LOG_LEVELS["INFO"]
|
||||||
@@max_level : LOG_LEVEL = LOG_LEVELS["FATAL"]
|
@@max_level : LOG_LEVEL = LOG_LEVELS["FATAL"]
|
||||||
|
@@log_file : String = ""
|
||||||
@@debug : Bool = false
|
@@debug : Bool = false
|
||||||
|
|
||||||
LOG_MUTEX = ::Mutex.new
|
LOG_MUTEX = ::Mutex.new
|
||||||
@@ -83,6 +84,9 @@ module Logger
|
|||||||
@@min_level.to_s.downcase
|
@@min_level.to_s.downcase
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.log_file=(@@log_file : String)
|
||||||
|
end
|
||||||
|
|
||||||
def self.valid?(level : LOG_LEVEL) : Bool
|
def self.valid?(level : LOG_LEVEL) : Bool
|
||||||
level.in?(@@min_level.value..@@max_level.value)
|
level.in?(@@min_level.value..@@max_level.value)
|
||||||
end
|
end
|
||||||
@@ -94,13 +98,21 @@ module Logger
|
|||||||
Logger.debug "Debug set to #{state}"
|
Logger.debug "Debug set to #{state}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.log(level : String, message : String, *args)
|
def self.log(level : String, message : String, *args) : Nil
|
||||||
_level = LOG_LEVELS[level]
|
_level = LOG_LEVELS[level]
|
||||||
message = message % args unless args.empty?
|
message = message % args unless args.empty?
|
||||||
if valid?(_level) || debug?
|
if valid?(_level) || debug?
|
||||||
synchronize {
|
synchronize {
|
||||||
time = Time.local
|
time = Time.local
|
||||||
STDERR.puts [time, level.to_s.colorize(_level.color), message].join(" : ")
|
message = [time, level.to_s.colorize(_level.color), message].join(" : ")
|
||||||
|
|
||||||
|
STDERR.puts message
|
||||||
|
|
||||||
|
unless @@log_file.empty?
|
||||||
|
File.open(@@log_file, "a") do |file|
|
||||||
|
file.puts message
|
||||||
|
end
|
||||||
|
end
|
||||||
raise "ERROR : Fatal error detected (#{message})" if level == "FATAL"
|
raise "ERROR : Fatal error detected (#{message})" if level == "FATAL"
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user