diff --git a/rb/lib/selenium/webdriver/common/logger.rb b/rb/lib/selenium/webdriver/common/logger.rb index 0010eb459a5f0..3868ceb1231d1 100644 --- a/rb/lib/selenium/webdriver/common/logger.rb +++ b/rb/lib/selenium/webdriver/common/logger.rb @@ -35,54 +35,25 @@ module WebDriver # class Logger extend Forwardable - include ::Logger::Severity def_delegators :@logger, :debug, :debug?, :info, :info?, :warn, :warn?, :error, :error?, :fatal, :fatal?, - :level + :level, :level= def initialize @logger = create_logger($stdout) end - def output=(io) - # `Logger#reopen` was added in Ruby 2.3 - if @logger.respond_to?(:reopen) - @logger.reopen(io) - else - @logger = create_logger(io) - end - end - # - # For Ruby < 2.3 compatibility - # Based on https://github.com/ruby/ruby/blob/ruby_2_3/lib/logger.rb#L250 + # Changes logger output to a new IO. # - - def level=(severity) - if severity.is_a?(Integer) - @logger.level = severity - else - case severity.to_s.downcase - when 'debug' - @logger.level = DEBUG - when 'info' - @logger.level = INFO - when 'warn' - @logger.level = WARN - when 'error' - @logger.level = ERROR - when 'fatal' - @logger.level = FATAL - when 'unknown' - @logger.level = UNKNOWN - else - raise ArgumentError, "invalid log level: #{severity}" - end - end + # @param [String] io + # + def output=(io) + @logger.reopen(io) end # @@ -132,9 +103,9 @@ def create_logger(output) def default_level if $DEBUG || ENV.key?('DEBUG') - DEBUG + :debug else - WARN + :warn end end end # Logger diff --git a/rb/spec/unit/selenium/webdriver/common/logger_spec.rb b/rb/spec/unit/selenium/webdriver/common/logger_spec.rb index 16d8f4be620b9..610055fbd2d67 100644 --- a/rb/spec/unit/selenium/webdriver/common/logger_spec.rb +++ b/rb/spec/unit/selenium/webdriver/common/logger_spec.rb @@ -32,16 +32,19 @@ module WebDriver it 'logs warnings by default' do expect(WebDriver.logger.level).to eq(2) + expect(WebDriver.logger).to be_warn end it 'logs everything if $DEBUG is set to true' do $DEBUG = true expect(WebDriver.logger.level).to eq(0) + expect(WebDriver.logger).to be_debug end it 'allows to change level during execution' do WebDriver.logger.level = :info expect(WebDriver.logger.level).to eq(1) + expect(WebDriver.logger).to be_info end it 'outputs to stdout by default' do