Logging Level Tweaking
-
Programmatic API (in-process) In C++, any
rclcpp::Logger
can have its level tweaked at runtime:1 2 3
#include <rclcpp/logger.hpp> auto my_logger = rclcpp::get_logger("my_node"); my_logger.set_level(rclcpp::Logger::Level::Debug);
-
With the default
rcl_logging_spdlog
backend, ROS 2 exposes two services per processes:/<node_name>/get_logger_levels (rcl_interfaces/srv/GetLoggerLevels)
/<node_name>/set_logger_levels (rcl_interfaces/srv/SetLoggerLevels)
So you can call them during runtime:
1
2
3
4
```
ros2 service call /my_node/set_logger_levels \
rcl_interfaces/srv/SetLoggerLevels "{ levels: [ { name: 'my_node', level: 10 } ] }"
```
-
Also, one can browse logs on rqt_logger:
1
ros2 run rqt_logger_level rqt_logger_level
-
Or,
ros2 run pkg node --ros-args --log-level my_node:=DEBUG
- I was having issues with doing this in gtest though.