Removed max=, added sprintf support to logging methods/macros

This commit is contained in:
Tristan Ancelet
2026-04-23 10:44:16 -05:00
parent 172e7e7521
commit ea549f832e

View File

@@ -54,8 +54,8 @@ module Logger
end end
{% for level in LOG_LEVELS.keys %} {% for level in LOG_LEVELS.keys %}
macro {{level.downcase.id}}(message) macro {{level.downcase.id}}(message, *args)
::Logger.log {{level}}, Logger.generate_log_line + \{{message}} ::Logger.log({{level}}, Logger.generate_log_line + \{{message}}, \{{*args}})
end end
{% end %} {% end %}
@@ -71,18 +71,17 @@ module Logger
end end
end end
{% for level in %w[ min max ] %} def self.min=(selection : String) : Nil
def self.{{level.id}}=(selection : String) : Nil Logger.debug "Entering with #{selection}"
Logger.debug "Entering with #{selection}" raise "ERROR : {{level.id}}= : Invalid level" unless _level = LOG_LEVELS[selection.upcase]
raise "ERROR : {{level.id}}= : Invalid level" unless _level = LOG_LEVELS[selection.upcase] synchronize {
synchronize { @@min_level = _level
@@{{level.id}}_level = _level }
} end
end
def self.{{level.id}} : String def self.min : String
@@{{level.id}}_level.to_s.downcase @@min_level.to_s.downcase
end end
{% 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)
@@ -95,8 +94,9 @@ module Logger
Logger.debug "Debug set to #{state}" Logger.debug "Debug set to #{state}"
end end
def self.log(level : String, message : String) def self.log(level : String, message : String, *args)
_level = LOG_LEVELS[level] _level = LOG_LEVELS[level]
message = message % args unless args.empty?
if valid?(_level) || debug? if valid?(_level) || debug?
synchronize { synchronize {
time = Time.local time = Time.local