Minimum Required Configuration

But first a word about telemetry log collecting and configuration

You have now power to influence log data you're receiving from the SDK starting with SDK version 8.0.0 and also data that are collected by SDK itself.

Use this power wisely so we can provide you the best possible support available.

There are multiple appenders available in the SDK you can choose from

  • CConsoleAppender
  • CScreenAppender
  • CFileAppender
  • CSocketAppender
  • TelemetryAppender
  • DiagnosticsAppender

And now a brief word about each of them

CConsoleAppender

This is native platform diagnostics log output. In case of Android it's logcat, for iOS it's NSLog and for Windows it's OutputDebugString.

CScreenAppender

It's direct output to 3D map view. This output must be enabled via imgui user interface.

CFileAppender

It's general file output. Writing in append mode can be set by one of configuration setting. File is not rotational.

CSocketAppender

This is http connection appender for internal feature called "remote control". No further information are available.

TelemetryAppender

Logs are instantly sending to telemetry url via http(s). This appender is using when you don't have control on running device and therefore you can't download or analyze local logs from file or console appenders.

DiagnosticsAppender

This is forwarder to signal (callback) on platform interface and host app can receive any logs from SDK for any purpose, e.g. writing to crashlytics data.

Configuration

This is example of minimal required json configuration file content

{
  "Authentication": {
    "app_key": "[YOUR_KEY]",
    "app_secret": "[YOUR_SECRET]"
  },
  "Logging": [
    {
      "name": "global",
      "classpath": "",
      "appenders": [
        {
          "class": "CConsoleAppender",
          "format": "%levshort %datetime %msg\n",
          "level": "debug",
          "time": "%FT%T%z"
        },
        {
          "class": "CScreenAppender",
          "format": "%levshort: %msg\n",
          "level": "warn"
        },
        {
          "class": "CFileAppender",
          "format": "%levshort %datetime %msg\n",
          "time": "%FT%T%z",
          "level": "debug",
          "file": "global.log",
          "append": false,
          "flush": 100
        },
        {
          "class": "CSocketAppender",
          "format": "%msg",
          "level": "trace"
        },
       {
          "class": "TelemetryAppender",
          "format": "%levshort %datetime %msg\n",
          "time": "%FT%T%z",
          "level": "debug",
          "url": "[address-provided-on-request]",
          "auto_send": true,
          "log_chunk_size_kb": 256,
          "lifetime_days": 14,
          "lifetime_size_mb": 10,
          "username": "[login-provided-on-request]",
          "password": "[password-provided-on-request]"
        },
        {
          "class": "DiagnosticsAppender",
          "format": "%levshort %datetime %msg\n",
          "time": "%FT%T%z",
          "level": "ProcedureCall"
        }
      ]
    }
  ]
}