Madhan
Madhan

Reputation: 5818

Disable log trace in Marionette driver

When MarionetteDriver is launched it's print log statement for each and every operation.Like

1465882610065   Marionette  TRACE   conn0 -> [0,138,"executeScript",{"args":[],"newSandbox":false,"script":"return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight,document.body.offsetHeight, document.documentElement.offsetHeight,document.body.clientHeight, document.documentElement.clientHeight);","scriptTimeout":null,"specialPowers":false}]
1465882610066   Marionette  TRACE   conn0 <- [1,138,null,{"value":895}]
1465882610070   Marionette  TRACE   conn0 -> [0,139,"executeScript",{"args":[],"newSandbox":false,"script":"window.devicePixelRatio = window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI; var pr = window.devicePixelRatio; if (pr != undefined && pr != null) return pr; else return 1.0;","scriptTimeout":null,"specialPowers":false}]
1465882610071   Marionette  TRACE   conn0 <- [1,139,null,{"value":1}]
1465882610319   Marionette  TRACE   conn0 -> [0,140,"findElements",{"using":"css selector","value":".logOut"}]
1465882610321   Marionette  TRACE   conn0 <- [1,140,null,[{"element-6066-11e4-a52e-4f735466cecf":"f9d9adc3-58df-446a-953d-eb793ac27025","ELEMENT":"f9d9adc3-58df-446a-953d-eb793ac27025"}]]
1465882610325   Marionette  TRACE   conn0 -> [0,141,"isElementDisplayed",{"id":"f9d9adc3-58df-446a-953d-eb793ac27025"}]
1465882610335   Marionette  TRACE   conn0 <- [1,141,null,{"value":true}]
1465882610338   Marionette  TRACE   conn0 -> [0,142,"isElementEnabled",{"id":"f9d9adc3-58df-446a-953d-eb793ac27025"}]
1465882610340   Marionette  TRACE   conn0 <- [1,142,null,{"value":true}]
1465882610343   Marionette  TRACE   conn0 -> [0,143,"clickElement",{"id":"f9d9adc3-58df-446a-953d-eb793ac27025"}]
1465882610372   Marionette  TRACE   conn0 <- [1,143,null,{}]
1465882610398   Marionette  TRACE   conn0 -> [0,144,"quitApplication",{"flags":["eForceQuit"]}]
1465882610399   Marionette  TRACE   conn0 <- [1,144,null,{}]
1465882610404   addons.xpi  DEBUG   Calling bootstrap method shutdown on @spritzfirefox version 4.1.5b
1465882610415   addons.xpi  DEBUG   Calling bootstrap method shutdown on [email protected] version 1.0
1465882610416   addons.xpi  DEBUG   Calling bootstrap method shutdown on [email protected] version 1.0.2
1465882610416   addons.xpi  DEBUG   Calling bootstrap method shutdown on [email protected] version 1.3.2

And I'm launching the MarionetteDriver by

System.setProperty("webdriver.gecko.driver", "geckodriver.exe");
WebDriver driver = new MarionetteDriver();

Is there any capabilities to disable the logs

Upvotes: 5

Views: 3632

Answers (4)

mmoossen
mmoossen

Reputation: 1277

being 2021, marionette.log.level moved to remote.log.level, and it values are Capitalized and Case-Sensitive.

See: https://firefox-source-docs.mozilla.org/testing/marionette/Prefs.html and https://firefox-source-docs.mozilla.org/remote/Prefs.html

Upvotes: 0

Jonathan
Jonathan

Reputation: 7098

Here are all the ways I've seen to do it online, the only part that seems to do ANYTHING AT ALL is setting the browser log file to /dev/null :(

            // ----------- BEGIN NIGHTMARISH AMOUNT OF CODE TO SET THE LOG LEVEL ------------
            boolean detailedLogs = false;

            File profileDirectory = new File(Settings.FireFoxProfilePath);
            System.setProperty("webdriver.gecko.driver", "Drivers/geckodriver-linux64");
            //System.setProperty("webdriver.gecko.driver","src/main/resources/drivers/geckodriver.exe");
            if (!detailedLogs) {
                System.setProperty(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE, "true");
                System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE, "/dev/null");
            }
            FirefoxProfile profile = null;
            FirefoxOptions options = new FirefoxOptions();
            if (profileDirectory.exists()) {
                profile = new FirefoxProfile(profileDirectory);
                profile.setPreference("marionette.log.level", detailedLogs?"trace":"warn");
                profile.setPreference("marionette.logging", detailedLogs);
                options.setProfile(profile);
            }
            options.setLogLevel(FirefoxDriverLogLevel.WARN);
            LoggingPreferences logs = new LoggingPreferences();
            logs.enable(LogType.BROWSER, detailedLogs? Level.ALL : Level.WARNING);
            logs.enable(LogType.CLIENT, detailedLogs? Level.ALL : Level.WARNING);
            logs.enable(LogType.DRIVER, detailedLogs? Level.ALL : Level.WARNING);
            logs.enable(LogType.PERFORMANCE, detailedLogs? Level.ALL : Level.WARNING);
            logs.enable(LogType.PROFILER, detailedLogs? Level.ALL : Level.WARNING);
            logs.enable(LogType.SERVER, detailedLogs? Level.ALL : Level.WARNING);
            //LEGACY: DesiredCapabilities desiredCapabilities = DesiredCapabilities.firefox();
            //desiredCapabilities.setCapability(CapabilityType.LOGGING_PREFS, logs);
            options.setCapability(CapabilityType.LOGGING_PREFS, logs);
            options.addPreference("extensions.logging.enabled", false);
            options.addPreference("marionette.log.level", detailedLogs?"trace":"warn");
            options.addPreference("marionette.logging", detailedLogs); // from https://github.com/mozilla/geckodriver/issues/89
            // ----------- END NIGHTMARISH AMOUNT OF CODE TO SET THE LOG LEVEL ------------
            driver = new FirefoxDriver(options);

Upvotes: 0

Michael Medina
Michael Medina

Reputation: 566

You can use the following lines of code to not display the marionette logs:

System.setProperty("webdriver.gecko.driver","src/main/resources/drivers/geckodriver.exe"); 
System.setProperty(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE,"true"); 
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"/dev/null");
return new FirefoxDriver();

Upvotes: 3

cooljoebob64
cooljoebob64

Reputation: 51

Firefox is supposed to have an option to set the logging level for Marionette in the about:config property marionette.logging, but this apparently is not present in builds up to and including 47.

Apparently Marionette is not officially supported in build 47, which is unfortunate because FirefoxDriver also no longer works on this build either. Currently the only supported options are to downgrade (and use FirefoxDriver) or wait for updates.

It is theorized that this will be fixed in 47.0.1 or 48 and might already be in the nightlies.

Source: https://github.com/mozilla/geckodriver/issues/89

Upvotes: 1

Related Questions