Logs Reference
Logs provide real-time diagnostic messages from devices. Unlike events (which are defined per device type in the schema), logs are a built-in mechanism available on all devices. Devices publish logs to RabbitMQ on the routing key devices.{deviceId}.logs, and Vesbite processes them alongside events through the same listener infrastructure.
Log Structure
Each log message contains the following fields:
| Property | Type | Description |
|---|---|---|
message | string | Human-readable log content |
level | string | Severity level |
source | string | Component or module within the device that generated the log |
timestamp | string | ISO 8601 timestamp of when the log was generated |
deviceId | GUID | Identifier of the source device |
tenantId | GUID | Identifier of the tenant the device belongs to |
Example log payload:
{
"tenantId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"message": "Antenna 2 detected cable fault",
"level": "Warning",
"source": "RfModule",
"timestamp": "2026-03-20T10:30:05.123Z"
}Log Levels
| Level | Value | Usage |
|---|---|---|
| Debug | Debug | Detailed diagnostic information for troubleshooting. High volume. |
| Info | Info | General operational messages confirming normal behavior. |
| Warning | Warning | Potential issues that do not prevent the device from operating. |
| Error | Error | Failures that require attention. The device may not function correctly. |
Logs are displayed with color-coded severity indicators in the UI.
Viewing Logs
Device Page (Real-Time Stream)
- Navigate to Devices and select a device.
- Open the Logs tab.
- Logs stream in real time as the device produces them.
The log stream auto-scrolls to show the latest messages. New entries appear at the bottom.
Aggregated Logs Page
View logs from all devices in one place:
- Navigate to Logs in the sidebar.
- Logs from all devices in your tenant are displayed together.
Filtering and Searching
Filter by Level
Select one or more severity levels to narrow the view. For example, show only Warning and Error to focus on problems.
Filter by Device
On the aggregated logs page, filter by a specific device to isolate its messages.
Search by Message
Use the search bar to find logs containing specific text. The search matches against the message field.
Filter by Time Range
Select a start and end time to view logs from a specific period.
Log Retention
Logs are retained according to your plan:
| Plan | Retention |
|---|---|
| Starter | 24 hours |
| Pro | 7 days |
| Enterprise | 30+ days (configurable) |
Logs older than the retention period are automatically deleted.
Common Log Messages
| Message | Level | Meaning |
|---|---|---|
Connected to MQTT broker | Info | Device established connection to the message broker |
Settings applied successfully | Info | Device received and applied new settings |
Antenna {n} detected cable fault | Warning | An antenna port is reporting a hardware issue |
Heartbeat timeout - reconnecting | Warning | Device lost connection and is attempting to reconnect |
Failed to write tag: access denied | Error | A tag encode operation failed due to a locked tag |
Reader firmware mismatch | Error | The device firmware version is incompatible |
Inventory session started | Debug | Reader began an RFID inventory round |
Tag population estimate: {n} | Debug | Reader’s estimate of tags in the field |
How Logs Flow Through the System
- The device publishes a log message to RabbitMQ on
devices.{deviceId}.logs. - The
RabbitMqDeviceEventListenerconsumes the message from thevesbite-device-eventsqueue (logs share this queue with events). - The listener identifies it as a log by the
logssegment in the routing key. - The log is published as a
DeviceEventwith event typelogsto MassTransit for internal routing. - The UI receives the log through real-time subscriptions and displays it in the log stream.
See Also
- Events Reference – Structured data published by devices
- How to Adopt a Device
- Understanding Devices