diff --git a/src/logger.cr b/src/logger.cr index 023a259..8fe44ee 100644 --- a/src/logger.cr +++ b/src/logger.cr @@ -54,8 +54,8 @@ module Logger end {% for level in LOG_LEVELS.keys %} - macro {{level.downcase.id}}(message) - ::Logger.log {{level}}, Logger.generate_log_line + \{{message}} + macro {{level.downcase.id}}(message, *args) + ::Logger.log({{level}}, Logger.generate_log_line + \{{message}}, \{{*args}}) end {% end %} @@ -71,18 +71,17 @@ module Logger end end - {% for level in %w[ min max ] %} - def self.{{level.id}}=(selection : String) : Nil - Logger.debug "Entering with #{selection}" - raise "ERROR : {{level.id}}= : Invalid level" unless _level = LOG_LEVELS[selection.upcase] - synchronize { - @@{{level.id}}_level = _level - } - end - def self.{{level.id}} : String - @@{{level.id}}_level.to_s.downcase - end - {% end %} + def self.min=(selection : String) : Nil + Logger.debug "Entering with #{selection}" + raise "ERROR : {{level.id}}= : Invalid level" unless _level = LOG_LEVELS[selection.upcase] + synchronize { + @@min_level = _level + } + end + + def self.min : String + @@min_level.to_s.downcase + end def self.valid?(level : LOG_LEVEL) : Bool level.in?(@@min_level.value..@@max_level.value) @@ -95,8 +94,9 @@ module Logger Logger.debug "Debug set to #{state}" end - def self.log(level : String, message : String) + def self.log(level : String, message : String, *args) _level = LOG_LEVELS[level] + message = message % args unless args.empty? if valid?(_level) || debug? synchronize { time = Time.local