diff options
Diffstat (limited to 'lib/logger/severity.rb')
-rw-r--r-- | lib/logger/severity.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/logger/severity.rb b/lib/logger/severity.rb index b38afb7d22..e96fb0d320 100644 --- a/lib/logger/severity.rb +++ b/lib/logger/severity.rb @@ -15,5 +15,24 @@ class Logger FATAL = 4 # An unknown message that should always be logged. UNKNOWN = 5 + + LEVELS = { + "debug" => DEBUG, + "info" => INFO, + "warn" => WARN, + "error" => ERROR, + "fatal" => FATAL, + "unknown" => UNKNOWN, + } + private_constant :LEVELS + + def self.coerce(severity) + if severity.is_a?(Integer) + severity + else + key = severity.to_s.downcase + LEVELS[key] || raise(ArgumentError, "invalid log level: #{severity}") + end + end end end |