Skip to content

Client Logging

The Convergence JavaScript client has a built-in logging framework that allows for detailed logging of the client operation. The logging framework facilitates status, error, and debug logging. The API Documentation contains specific information on the available options. Logs are output to the JavaScript console.

Loggers

Log messages within the client are output to specific loggers. The loggers categorize related messages into groups that can be turned on and off independently.

Logger Description
protocol Protocol messages between the client and server.
connection High level connection and authentication related logs.
socket Low level WebSocket connection messages.
activities.activity Logs related to individual activities.
activities.service Logs related to the activity service.
models Logs related to the RealTimeModel subsystem.
storage Logs related to the offline storage system.

Log Levels

Log messages are output at log levels. The level describes the severity of the log messages. When configuring loggers, you can set the threshold of the messages that it will output. The table below is the priority order of the log levels. For example, if the log level of a logger is set to INFO, then log messages output at the INFO, WARN, and ERROR levels will be output, but DEBUG and TRACE messages will not be output.

LEVEL Description
SILENT No log messages will be output.
ERROR Error messages that represent incorrect usage or a failure of the system.
WARN Represents a warning that could indicate an issue but is no necessarily a fatal issue.
INFO Represent information that might be in interest to users and developers.
DEBUG Information that is likely of interest to developer when debugging their application.
TRACE Information that is likely only of interest to a developer working on Convergence itself.

Configuration

The logging system can be configured using the static Convergence.configureLogging() method.

Convergence.configureLogging({
  // Configures the default log level if not otherwise specified.
  root: LogLevel.ERROR, 

  // Configures specific loggers to output at a specific level.
  loggers: {
    "connection": LogLevel.DEBUG
  }
});