Skip to content

Commit 0e4fcd2

Browse files
authored
[rb] update logger with link on how to use it (#11478)
1 parent 086e9fb commit 0e4fcd2

File tree

5 files changed

+26
-7
lines changed

5 files changed

+26
-7
lines changed

rb/lib/selenium/webdriver.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ def self.for(*args)
9494
# @return [Logger]
9595
#
9696

97-
def self.logger
98-
@logger ||= WebDriver::Logger.new
97+
def self.logger(**opts)
98+
@logger ||= WebDriver::Logger.new('Selenium', **opts)
9999
end
100100
end # WebDriver
101101
end # Selenium

rb/lib/selenium/webdriver/common/logger.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,10 @@ class Logger
4848
#
4949
# @param [String] progname Allow child projects to use Selenium's Logger pattern
5050
#
51-
def initialize(progname = 'Selenium')
51+
def initialize(progname = 'Selenium', ignored: nil)
5252
@logger = create_logger(progname)
53-
@ignored = []
53+
@ignored = Array(ignored)
54+
@first_warning = false
5455
end
5556

5657
#
@@ -94,6 +95,13 @@ def ignore(id)
9495
# @yield see #deprecate
9596
#
9697
def warn(message, id: [])
98+
unless @first_warning
99+
@first_warning = true
100+
warn("Details on how to use and modify Selenium logger:\n", id: [:logger_info]) do
101+
"https://selenium.dev/documentation/webdriver/troubleshooting/logging#ruby\n"
102+
end
103+
end
104+
97105
id = Array(id)
98106
return if (@ignored & id).any?
99107

rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ def initialize
2828
@create_driver_error_count = 0
2929

3030
populate_from_bazel_target
31-
WebDriver.logger
3231

3332
@driver = ENV.fetch('WD_SPEC_DRIVER', :chrome).to_sym
3433
@driver_instance = nil

rb/spec/unit/selenium/webdriver/common/logger_spec.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
module Selenium
2323
module WebDriver
2424
describe Logger do
25-
subject(:logger) { Logger.new('Selenium') }
25+
subject(:logger) { Logger.new('Selenium', ignored: [:logger_info]) }
2626

2727
around do |example|
2828
debug = $DEBUG
@@ -37,6 +37,12 @@ module WebDriver
3737
msg = /WARN NotSelenium message/
3838
expect { other_logger.warn('message') }.to output(msg).to_stdout_from_any_process
3939
end
40+
41+
it 'does not log info from constructor' do
42+
expect {
43+
Logger.new('Selenium')
44+
}.not_to output(/.+/).to_stdout_from_any_process
45+
end
4046
end
4147

4248
describe '#level' do
@@ -79,6 +85,12 @@ module WebDriver
7985
end
8086

8187
describe '#warn' do
88+
it 'logs info on first warning but not second' do
89+
logger = Logger.new('Selenium')
90+
expect { logger.warn('first') }.to output(/:logger_info/).to_stdout_from_any_process
91+
expect { logger.warn('second') }.not_to output(/:logger_info/).to_stdout_from_any_process
92+
end
93+
8294
it 'logs with String' do
8395
expect { logger.warn "String Value" }.to output(/WARN Selenium String Value/).to_stdout_from_any_process
8496
end

rb/spec/unit/selenium/webdriver/spec_helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def with_env(hash)
4343
c.define_derived_metadata do |meta|
4444
meta[:aggregate_failures] = true
4545
end
46-
Selenium::WebDriver.logger
46+
Selenium::WebDriver.logger(ignored: [:logger_info])
4747

4848
c.include Selenium::WebDriver::UnitSpecHelper
4949

0 commit comments

Comments
 (0)