Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing the log level for a selenium node running in docker

Our team is deploying a selenium grid using docker. The default log level appears to be set to INFO. I'd like to set it to something higher, SEVERE or turn them completely off. I've made three attempts, but so far, to no effect.

Method One:

From the selenium client, I've tried to set LoggingPreferences on the RemoteWebDriver within DesiredCapabilities:

DesiredCapabilities desiredCapabilities = DesiredCapabilities.firefox();
LoggingPreferences logs = new LoggingPreferences();
logs.enable(LogType.BROWSER, Level.SEVERE);
logs.enable(LogType.CLIENT, Level.SEVERE);
ogs.enable(LogType.DRIVER, Level.SEVERE);
logs.enable(LogType.SERVER, Level.SEVERE);
desiredCapabilities.setCapability(CapabilityType.LOGGING_PREFS, logs);
desiredCapabilities.setCapability(FirefoxDriver.PROFILE, profile);
WebDriver driver = new RemoteWebDriver(new URL(host:4444/wd/hub"), 
                                           desiredCapabilities);

Method 2: I tried to change the profile preferences:

FirefoxProfile profile = new FirefoxProfile();

profile.setPreference("webdriver.log.driver", "OFF");
profile.setPreference("webdriver.log.file","/dev/null");

Method 3: I tried to modify config.json in the container located in /opt/selenium/config.json:

{
  "capabilities": [
    {
      "browserName": "*firefox",
      "maxInstances": 1,
      "seleniumProtocol": "Selenium"
    },
    {
      "browserName": "firefox",
      "maxInstances": 1,
      "seleniumProtocol": "WebDriver"
    }
  ],
  "configuration": {
      "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
      "maxSession": 1,
      "port": 5555,
      "register": true,
      "registerCycle": 5000,
      "logLevel":FATAL
  }
}

So far I've been unable to do anything that has altered the logging behavior.

like image 775
Scott Turley Avatar asked Oct 19 '22 09:10

Scott Turley


1 Answers

@Scott

The Selenium codebase uses the Java Utils Logger. So maybe you can try passing in a custom logging.properties wherein the log levels are bumped up and see if that helps. [ See here to know a bit more about logging.properties ]

The LoggingPreferences class is mainly used to tweak the log levels that are to be retrieved only for a given session [ atleast that's what I think it is ] and it doesn't alter the logging level of the JVM that the node/grid runs under.

In the case of Selenium server standalone, the log levels can be changed via the JVM argument "selenium.LOGGER.level"

like image 199
Krishnan Mahadevan Avatar answered Nov 15 '22 06:11

Krishnan Mahadevan