Class: Selenium::WebDriver::Logger
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Logger
- Extended by:
- Forwardable
- Defined in:
- lib/selenium/webdriver/common/logger.rb
Overview
Instance Method Summary collapse
-
#deprecate(old, new = nil, id: [], reference: '') { ... } ⇒ Object
Marks code as deprecated with/without replacement.
-
#ignore(id) ⇒ Object
Will not log the provided ID.
-
#initialize(progname = 'Selenium', ignored: nil) ⇒ Logger
constructor
A new instance of Logger.
-
#io ⇒ Object
private
Returns IO object used by logger internally.
-
#output=(io) ⇒ Object
Changes logger output to a new IO.
-
#warn(message, id: []) { ... } ⇒ Object
Overrides default #warn to skip ignored messages by provided id.
Constructor Details
#initialize(progname = 'Selenium', ignored: nil) ⇒ Logger
Returns a new instance of Logger.
51 52 53 54 55 |
# File 'lib/selenium/webdriver/common/logger.rb', line 51 def initialize(progname = 'Selenium', ignored: nil) @logger = create_logger(progname) @ignored = Array(ignored) @first_warning = false end |
Instance Method Details
#deprecate(old, new = nil, id: [], reference: '') { ... } ⇒ Object
Marks code as deprecated with/without replacement.
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
# File 'lib/selenium/webdriver/common/logger.rb', line 123 def deprecate(old, new = nil, id: [], reference: '', &block) id = Array(id) return if @ignored.include?(:deprecations) || (@ignored & id).any? ids = id.empty? ? '' : "[#{id.map(&:inspect).join(', ')}] " = +"[DEPRECATION] #{ids}#{old} is deprecated" << if new ". Use #{new} instead." else ' and will be removed in a future release.' end << " See explanation for this deprecation: #{reference}." unless reference.empty? warn , &block end |
#ignore(id) ⇒ Object
Will not log the provided ID.
86 87 88 |
# File 'lib/selenium/webdriver/common/logger.rb', line 86 def ignore(id) Array(id).each { |ignore| @ignored << ignore } end |
#io ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns IO object used by logger internally.
Normally, we would have never needed it, but we want to use it as IO object for all child processes to ensure their output is redirected there.
It is only used in debug level, in other cases output is suppressed.
77 78 79 |
# File 'lib/selenium/webdriver/common/logger.rb', line 77 def io @logger.instance_variable_get(:@logdev).dev end |
#output=(io) ⇒ Object
Changes logger output to a new IO.
62 63 64 |
# File 'lib/selenium/webdriver/common/logger.rb', line 62 def output=(io) @logger.reopen(io) end |
#warn(message, id: []) { ... } ⇒ Object
Overrides default #warn to skip ignored messages by provided id
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/selenium/webdriver/common/logger.rb', line 97 def warn(, id: []) unless @first_warning @first_warning = true warn("Details on how to use and modify Selenium logger:\n", id: [:logger_info]) do "https://selenium.dev/documentation/webdriver/troubleshooting/logging#ruby\n" end end id = Array(id) return if (@ignored & id).any? msg = id.empty? ? : "[#{id.map(&:inspect).join(', ')}] #{message} " msg += " #{yield}" if block_given? @logger.warn { msg } end |