class Selenium::WebDriver::Logger

def discard_or_log(level, message, id)

def discard_or_log(level, message, id)
  id = Array(id)
  return if @ignored.intersect?(id)
  return if @allowed.any? && !@allowed.intersect?(id)
  return if ::Logger::Severity.const_get(level.upcase) < @logger.level
  unless @first_warning
    @first_warning = true
    info("Details on how to use and modify Selenium logger:\n", id: [:logger_info]) do
      "https://selenium.dev/documentation/webdriver/troubleshooting/logging\n"
    end
  end
  msg = id.empty? ? message : "[#{id.map(&:inspect).join(', ')}] #{message} "
  msg += " #{yield}" if block_given?
  @logger.send(level) { msg }
end