Skip to content

Device logs

Device logs are visible in the nRF Cloud portal or APIs.

This guide includes steps for both JSON-based and binary logs.

Requirements

  • An nRF91 Series device

  • One of the supported samples. These samples are preconfigured to support nRF Cloud logs.

If you would like to use binary logs, see the Overview for links to documentation on requirements and configuration. You can download binary logs through the nRF Cloud portal or APIs.

Using device logs in the nRF Cloud portal

To enable, disable, or change the level of logs:

  1. Log in to the nRF Cloud portal.
  2. Select Device Management in the left sidebar.

    A pane opens to the right.

  3. Select Devices.

  4. Click the name of the device you want to view.

    The device page opens.

  5. Find the Logs card.

    The header of the Logs card shows the current log level.

  6. Select the desired log level from the drop-down menu.

Note

It may take some time for the log level change request to finish processing. If the device is not connected when you change the log level in the portal, it will process the change request when it reconnects to nRF Cloud.

Once the request finishes processing, the current log level updates to match the requested one.

Viewing logs

To view logs and download data:

  1. From the device page, find the Logs card.

    If the device is currently connected, the card shows current logs.

To view historical log data:

  1. Click the triangular clock icon in the lower right corner of the Logs card.

    The time selector opens.

  2. Select a time range from the drop-down menu.

  3. Click Get data.

Logs within the specified time range appear in the card. Click the cloud icon to download logs for that range as a CSV file.

Note

Messages in logs might not be in chronological order.

Downloading binary logs through the portal

Verify that your device is configured to use binary logs:

  1. Log in to the nRF Cloud portal.
  2. Select Device Management in the left sidebar.

    A panel opens to the right.

  3. Select Devices.

  4. Click the name of the device you want to view.

    The device page opens.

  5. Find the Device Information card.

  6. Expand the Service info section.
  7. Verify that the UI section includes DICTLOG to confirm that your device is configured for binary logs.

To download binary logs for a device:

  1. Select Device Management in the left sidebar.

    A panel opens to the right.

  2. Select Devices.

  3. Click the name of the device you want to view.

    The device page opens.

  4. Find the Logs card.

  5. Click the Download binary logs button.

    The Binary Logs pop-up opens.

  6. Select a time range. The start time must be in the past 30 days, and the end time may be up to 24 hours after the specified start. The portal displays an error if you select an invalid time range.

    You can enter the time range manually, or click the calendar icon to select start and end dates.

    If you do not specify a time range, the file will contain logs from the last 24 hours.

  7. Click Download.

    A file downloads containing binary logs.

  8. Parse the binary log file.

Using device logs through the APIs

Device messages with log data are sent over supported message topics or through the SendDeviceMessage endpoint. Messages are stored on nRF Cloud for 30 days.

Binary log messages are sent over the d2c/bin topic.

To enable, disable, or change the level of logs, call the UpdateDeviceState endpoint. The following sections give examples for each of these cases.

Enabling logs

Specify a log level of 1 (error), 2 (warning), 3 (info), or 4 (debug) in the desired... control... logLvl field:

{
  "desired": {
    "control": {
      "logLvl": 2
    }
  }
}

Disabling logs

Specify the log level 0 in the desired... control... logLvl field:

{
  "desired": {
    "control": {
      "logLvl": 0
    }
  }
}

Changing the log level

Specify the desired log level in the desired... control... logLvl field:

{
  "desired": {
    "control": {
      "logLvl": 3
    }
  }
}

See the overview for available log levels.

Viewing logs

To view JSON-based device logs, call the ListMessages endpoint. To view only messages related to device logs, include the query parameter appId=LOG.

Note

Messages in the response might not be in chronological order.

See the endpoint reference for more information on optional filters. See also Device messages.

The following example response includes appId: "LOG":

"items": [
        {
            "topic": "<environment>/7c57d43f-4307-4d8a-86fe-a14294f1ce93/m/d/nrf-350457790035043/d2c",
            "deviceId": "nrf-350423790035043",
            "receivedAt": "2023-05-09T11:36:30.501Z",
            "message": {
                "appId": "LOG",
                "dom": 0,
                "lvl": 3,
                "src": "application",
                "ts": 1683632190501,
                "seq": 217,
                "msg": "Temperature is 23 degrees C"
            },
            "tenantId": "7c57d43f-4307-4d8a-86fe-a14294f1ce93"
        },
]

Downloading binary logs through the API

Use the `FetchBinaryLogsUrl endpoint to download binary logs for a given device.

Specify the start and end query parameters to select a time range.

Logs are stored for 30 days. The specified start must be in the past 30 days, and the end can be up to 24 hours after start. If you select an invalid time range, the server rejects the request.

If you do not choose a time range, the server returns the last 24 hours of logs.

The server responds with a link to a downloadable file. To view the log contents, you must parse the file.