class Watir::Logger
@example Enable full logging
Watir.logger.level = :debug
@example Log to file
Watir.logger.output = 'watir.log'
@example Use
logger manually
Watir.logger.info('This is info message') Watir.logger.warn('This is warning message')
Public Class Methods
new(progname = 'Watir')
click to toggle source
# File lib/watir/logger.rb, line 30 def initialize(progname = 'Watir') @logger = create_logger($stdout) @logger.progname = progname @ignored = [] end
Public Instance Methods
deprecate(old, new, reference: '', ids: [])
click to toggle source
Marks code as deprecated with replacement.
@param [String] old @param [String] new
# File lib/watir/logger.rb, line 74 def deprecate(old, new, reference: '', ids: []) return if @ignored.include?('deprecations') || (@ignored & ids.map!(&:to_s)).any? msg = ids.empty? ? '' : "[#{ids.map(&:inspect).join(', ')}] " ref_msg = reference.empty? ? '.' : "; see explanation for this deprecation: #{reference}." warn "[DEPRECATION] #{msg}#{old} is deprecated. Use #{new} instead#{ref_msg}" end
ignore(ids)
click to toggle source
# File lib/watir/logger.rb, line 36 def ignore(ids) @ignored.concat Array(ids).map(&:to_s) 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/watir/logger.rb, line 64 def io @logger.instance_variable_get(:@logdev).instance_variable_get(:@dev) end
output=(io)
click to toggle source
# File lib/watir/logger.rb, line 40 def output=(io) @logger.reopen(io) end
selenium=(val)
click to toggle source
# File lib/watir/logger.rb, line 82 def selenium=(val) Selenium::WebDriver.logger.level = val end
warn(message, ids: [], &block)
click to toggle source
Only log a warn message if it is not set to be ignored.
# File lib/watir/logger.rb, line 47 def warn(message, ids: [], &block) msg = ids.empty? ? '' : "[#{ids.map!(&:to_s).map(&:inspect).join(', ')}] " msg += message @logger.warn(msg, &block) unless (@ignored & ids).any? end
Private Instance Methods
create_logger(output)
click to toggle source
# File lib/watir/logger.rb, line 88 def create_logger(output) logger = ::Logger.new(output) logger.progname = 'Watir' logger.level = ($DEBUG ? DEBUG : WARN) logger.formatter = proc do |severity, time, progname, msg| "#{time.strftime('%F %T')} #{severity} #{progname} #{msg}\n" end logger end