From 2445cd798adaef716f946338698c3be64fc756a9 Mon Sep 17 00:00:00 2001 From: sonots Date: Tue, 17 Nov 2015 14:15:25 +0000 Subject: * lib/logger.rb: support symbol and string log level setting [fix GH-1101] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/logger.rb | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'lib/logger.rb') diff --git a/lib/logger.rb b/lib/logger.rb index 475ec2a9bf..d17896f841 100644 --- a/lib/logger.rb +++ b/lib/logger.rb @@ -176,6 +176,13 @@ require 'monitor' # # # DEBUG < INFO < WARN < ERROR < FATAL < UNKNOWN # +# 3. Symbol or String (case insensitive) +# +# logger.level = :info +# logger.level = 'INFO' +# +# # :debug < :info < :warn < :error < :fatal < :unknown +# # == Format # # Log messages are rendered in the output stream in a certain format by @@ -234,7 +241,34 @@ class Logger include Severity # Logging severity threshold (e.g. Logger::INFO). - attr_accessor :level + attr_reader :level + + # Set logging severity threshold. + # + # +severity+:: The Severity of the log message. + def level=(severity) + if severity.is_a?(Integer) + @level = severity + else + _severity = severity.to_s.downcase + case _severity + when 'debug'.freeze + @level = DEBUG + when 'info'.freeze + @level = INFO + when 'warn'.freeze + @level = WARN + when 'error'.freeze + @level = ERROR + when 'fatal'.freeze + @level = FATAL + when 'unknown'.freeze + @level = UNKNOWN + else + raise ArgumentError, "invalid log level: #{severity}" + end + end + end # Program name to include in log messages. attr_accessor :progname -- cgit v1.2.3