Skip to content

Commit 008e101

Browse files
committed
remove custom Logger implementation and use Selenium's new Logger
1 parent a9a56b7 commit 008e101

File tree

2 files changed

+3
-94
lines changed

2 files changed

+3
-94
lines changed

lib/webdrivers/common.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# frozen_string_literal: true
22

33
require 'rubygems/package'
4-
require 'webdrivers/logger'
54
require 'webdrivers/network'
65
require 'webdrivers/system'
76
require 'selenium-webdriver'
7+
require 'webdrivers/logger'
88
require 'webdrivers/version'
99

1010
module Webdrivers

lib/webdrivers/logger.rb

+2-93
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
# frozen_string_literal: true
22

3-
require 'forwardable'
4-
require 'logger'
5-
6-
# Code adapted from Selenium Implementation
7-
# https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/common/logger.rb
8-
93
module Webdrivers
104
#
115
# @example Enable full logging
@@ -18,94 +12,9 @@ module Webdrivers
1812
# Webdrivers.logger.info('This is info message')
1913
# Webdrivers.logger.warn('This is warning message')
2014
#
21-
class Logger
22-
extend Forwardable
23-
include ::Logger::Severity
24-
25-
def_delegators :@logger, :debug, :debug?,
26-
:info, :info?,
27-
:warn, :warn?,
28-
:error, :error?,
29-
:fatal, :fatal?,
30-
:level
31-
15+
class Logger < Selenium::WebDriver::Logger
3216
def initialize
33-
@logger = create_logger($stdout)
34-
end
35-
36-
def output=(io)
37-
# `Logger#reopen` was added in Ruby 2.3
38-
if @logger.respond_to?(:reopen)
39-
@logger.reopen(io)
40-
else
41-
@logger = create_logger(io)
42-
end
43-
end
44-
45-
#
46-
# For Ruby < 2.3 compatibility
47-
# Based on https://github.com/ruby/ruby/blob/ruby_2_3/lib/logger.rb#L250
48-
#
49-
50-
def level=(severity)
51-
if severity.is_a?(Integer)
52-
@logger.level = severity
53-
else
54-
case severity.to_s.downcase
55-
when 'debug'
56-
@logger.level = DEBUG
57-
when 'info'
58-
@logger.level = INFO
59-
when 'warn'
60-
@logger.level = WARN
61-
when 'error'
62-
@logger.level = ERROR
63-
when 'fatal'
64-
@logger.level = FATAL
65-
when 'unknown'
66-
@logger.level = UNKNOWN
67-
else
68-
raise ArgumentError, "invalid log level: #{severity}"
69-
end
70-
end
71-
end
72-
73-
#
74-
# Returns IO object used by logger internally.
75-
#
76-
# Normally, we would have never needed it, but we want to
77-
# use it as IO object for all child processes to ensure their
78-
# output is redirected there.
79-
#
80-
# It is only used in debug level, in other cases output is suppressed.
81-
#
82-
# @api private
83-
#
84-
def io
85-
@logger.instance_variable_get(:@logdev).instance_variable_get(:@dev)
86-
end
87-
88-
#
89-
# Marks code as deprecated with replacement.
90-
#
91-
# @param [String] old
92-
# @param [String] new
93-
#
94-
def deprecate(old, new)
95-
warn "[DEPRECATION] #{old} is deprecated. Use #{new} instead."
96-
end
97-
98-
private
99-
100-
def create_logger(output)
101-
logger = ::Logger.new(output)
102-
logger.progname = 'Webdrivers'
103-
logger.level = ($DEBUG ? DEBUG : WARN)
104-
logger.formatter = proc do |severity, time, progname, msg|
105-
"#{time.strftime('%F %T')} #{severity} #{progname} #{msg}\n"
106-
end
107-
108-
logger
17+
super('Webdrivers')
10918
end
11019
end
11120
end

0 commit comments

Comments
 (0)