View Source

# namespace webdriver.logging

Defines WebDriver's logging system. The logging system is broken into major components: local and remote logging.

The local logging API, which is anchored by the `Logger` class, is similar to Java's logging API. Loggers, retrieved by `webdriver.logging.getLogger`, use hierarchical, dot-delimited namespaces (e.g. "" > "webdriver" > "webdriver.logging"). Recorded log messages are represented by the `LogRecord` class. You can capture log records by attaching a handler function to the desired logger. For convenience, you can quickly enable logging to the console by simply calling `webdriver.logging.installConsoleHandler()`.

The remote logging API allows you to retrieve logs from a remote WebDriver server. This API uses the `Preferences` class to define desired log levels prior to create a WebDriver session:

    var prefs = new webdriver.logging.Preferences();
    prefs.setLevel(webdriver.logging.Type.BROWSER,
                   webdriver.logging.Level.DEBUG);

    var caps = webdriver.Capabilities.chrome();
    caps.setLoggingPrefs(prefs);
    // ...

Remote log entries are represented by the `Entry` class and may be retrieved via `webdriver.WebDriver.Logs`:

    driver.manage().logs().get(webdriver.logging.Type.BROWSER)
        .then(function(entries) {
           entries.forEach(function(entry) {
             console.log('[%s] %s', entry.level.name, entry.message);
           });
        });

NOTE: Only a few browsers support the remote logging API (notably Firefox and Chrome). Firefox supports basic logging functionality, while Chrome exposes robust performance logging options. Remote logging is still considered a non-standard feature, and the APIs exposed by this module for it are non-frozen. Once logging is officially defined by the W3C WebDriver spec, this module will be updated to use a consistent API for local and remote logging.

## Functions

### addConsoleHandler(opt_logger)code »

Adds the console handler to the given logger. The console handler will log all messages using the JavaScript Console API.

Parameters

opt_logger`?webdriver.logging.Logger=`

  The logger to add the handler to; defaults to the root logger.

### getLevel(nameOrValue)code »

Converts a level name or value to a `webdriver.logging.Level` value. If the name/value is not recognized, `webdriver.logging.Level.ALL` will be returned.

Parameters

nameOrValue`(number|string)`

  The log level name, or value, to convert .

Returns

`webdriver.logging.Level`

  The converted level.

### getLogger(opt_name)code »

Finds a named logger.

Parameters

opt_name`string=`

  The dot-delimited logger name, such as "webdriver.logging.Logger". Defaults to the name of the root logger.

Returns

`webdriver.logging.Logger`

  The named logger.

### installConsoleHandler()code »

Installs the console log handler on the root logger.

### removeConsoleHandler(opt_logger)code »

Removes the console log handler from the given logger.

Parameters

opt_logger`?webdriver.logging.Logger=`

  The logger to remove the handler from; defaults to the root logger.

## Types

Entry

  A single log entry recorded by a WebDriver component, such as a remote WebDriver server.

Level

  The Level class defines a set of standard logging levels that can be used to control logging output.

LogRecord

  LogRecord objects are used to pass logging requests between the logging framework and individual log Handlers.

Logger

  The Logger is an object used for logging debug messages.

Preferences

  Describes the log preferences for a WebDriver session.

Type

  No description.