class Selenium::WebDriver::Logger
@example Enable full logging
Selenium::WebDriver.logger.level = :debug
@example Log to file
Selenium::WebDriver.logger.output = 'selenium.log'
@example Use logger manually
Selenium::WebDriver.logger.info('This is info message') Selenium::WebDriver.logger.warn('This is warning message')
Public Class Methods
new()
click to toggle source
# File lib/selenium/webdriver/common/logger.rb, line 45 def initialize @logger = create_logger($stdout) end
Public Instance Methods
deprecate(old, new = nil)
click to toggle source
Marks code as deprecated with/without replacement.
@param [String] old @param [String, nil] new
# File lib/selenium/webdriver/common/logger.rb, line 107 def deprecate(old, new = nil) message = "[DEPRECATION] #{old} is deprecated" message << if new ". Use #{new} instead." else ' and will be removed in the next releases.' end warn message end
io()
click to toggle source
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.
@api private
# File lib/selenium/webdriver/common/logger.rb, line 97 def io @logger.instance_variable_get(:@logdev).instance_variable_get(:@dev) end
level=(severity)
click to toggle source
For Ruby < 2.3 compatibility Based on github.com/ruby/ruby/blob/ruby_2_3/lib/logger.rb#L250
# File lib/selenium/webdriver/common/logger.rb, line 63 def level=(severity) if severity.is_a?(Integer) @logger.level = severity else case severity.to_s.downcase when 'debug'.freeze @logger.level = DEBUG when 'info'.freeze @logger.level = INFO when 'warn'.freeze @logger.level = WARN when 'error'.freeze @logger.level = ERROR when 'fatal'.freeze @logger.level = FATAL when 'unknown'.freeze @logger.level = UNKNOWN else raise ArgumentError, "invalid log level: #{severity}" end end end
output=(io)
click to toggle source
# File lib/selenium/webdriver/common/logger.rb, line 49 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
Private Instance Methods
create_logger(output)
click to toggle source
# File lib/selenium/webdriver/common/logger.rb, line 120 def create_logger(output) logger = ::Logger.new(output) logger.progname = 'Selenium' logger.level = default_level logger.formatter = proc do |severity, time, progname, msg| "#{time.strftime('%F %T')} #{severity} #{progname} #{msg}\n" end logger end
default_level()
click to toggle source
# File lib/selenium/webdriver/common/logger.rb, line 131 def default_level if $DEBUG || ENV.key?('DEBUG') DEBUG else WARN end end