What if we could just use spdlog instead?
This is a package that allows you to override the logging system in rcl/rclcpp to use spdlog!
The tl;dr for how this works is, we replace rclcpp's logging system initialization with our own!
We use our own logging output handler, that will capture all logging calls that rely on rclcpp macros, which before was rerouted to rclcpp's logging output handler, and instead we run a very similar code to what the underlying rcutils logging call would do.
I've done quite a bit of testing with this package and found no issues, but please understand that this is relying on some rcl/rclcpp internal API that may change in the future. That being said, this should work for any ROS2 distribution from at least Foxy up to Jazzy.