otb-iot categorises the types of logs produced as follows:
|Boot||Messages from the bootloader|
|Debug||Disabled by default, provides very verbose logging|
|Info||An interesting event has occurred|
|Warn||A minor failure has occurred|
|Error||A major failure has occurred|
As indicated, all logs are contained in builds of otb-iot by default, with the exception of debugging logging, which introduces significantly larger binary sizes, so these logs should only be selectively turned on.
There are four ways of accessing logging information on otb-iot:
1 Using the serial port.
2 Once connected via MQTT, logs of type error will be reported automatically via MQTT.
3 The last N logs are stored in a circular RAM buffer. These can be retrieved individually via MQTT.
4 The last N logs are stored on the flash chip before a reboot, if the device is able to do so. These can then be read off by directly (physically) accessing the flash.
5 Not yet supported - accessing the logs when connecting to the otb-iot AP.
When developing devices based on otb-iot the serial port should be used wherever possible to provide the quickest and easiest access to as much diagnostic information as possible. However, where this isn’t possible, the stored logs can be accessed either by MQTT or reading the flash chip directly.
As noted earlier, these should be used sparingly, as the binary will be very large with debugging turned on, and this will also slow the software down significantly. The author recommends that debugging logs are only used temporarily and when absolutely necessary.