Logging
Logging is a crucial aspect of embedded systems development, providing visibility into the system’s behavior and aiding in debugging and monitoring. In the Rust ecosystem, two prominent logging frameworks are commonly used: defmt and log.
Regardless of which of the following tools you choose to use when generating your project, esp-generate will make sure that everything is set up correctly, so that the end user only has to adapt the logging tool used to their needs.
defmt
defmt is a highly efficient logging framework designed for resource-constrained environments, such as embedded systems. It offers compact, binary-encoded log messages, reducing the overhead associated with traditional string-based logging. For more information about see defmt documentation. We recommend pairing defmt with probe-rs for the best results on Espressif chips.
log
The log crate is a widely adopted logging facade in the Rust community. It defines a set of macros (info!, warn!, error!, etc.) to capture log messages at various levels. We offer a logger implementation in esp-println, but you are free to implement your own logger if you wish.