Hi
I’ve developed a new alternative logging backend for ROS 2:

It writes ROS 2 log records straight into systemd-journald as structured, indexed entries — so instead of grepping text files under ~/.ros/log, you get journalctl with per-node filtering, built-in rotation/retention, and trusted metadata. Zero extra daemons or configuration.
export RCL_LOGGING_IMPLEMENTATION=rcl_logging_journal
ros2 run demo_nodes_cpp talker &
journalctl -f ROS2_NODE_NAME=talker # follow one node live
journalctl -p warning --since "10 min ago" # WARN+ in a time window
journalctl -b -1 -p err # errors before the last reboot
Highlights:
- Indexed fields per record (
ROS2_NODE_NAME,PRIORITY, …) plus your own fleet fields likeROBOT_ID - Containers log into the host journal by binding one socket — no daemon in the image
- Async ring buffer on the hot path; FATAL is synchronous and fsynced. Benchmark harness included
Feedback, issues, and PRs welcome as always!
overview.pdf (786.1 KB)
thanks,
Tomoya