ulog

A small logging library (not only) for hard real-time logging. Key features:

Real-time

ulog is intended for use on embedded Linux applications that are multithreaded and require a single thread to provide hard real-time guarantees. Logs made using ulog are sent through a synchronous channel before being processed, if logging cannot be completed in constant time, the message is dropped and an error flag is set.

However, allocations have to be made before sending the log entry for asynchronouos processing, to copy fields of a log message, see the LogMessage docs for details.

Other logging crates

There are a lot of other logging crates that offer similar functionality, the closest one in focus is fastlog. While fastlog shares the focus on asynchronous logging, it is unfortunately limited to predefined ways of logging that are mostly files and stdout/-err.