use_logger_service
This file is ai generated. Do not edit this file directly. Instead, edit the node source code and run the generate-node-docs command to update this file.
Description
A ROS2 demonstration showing how to enable and control logger levels dynamically using logger services. The demo includes two nodes: LoggerServiceNode which has the logger service enabled, and TestNode which remotely changes the logger level and sends test messages. This demonstrates runtime control of log verbosity without restarting nodes.
Publishers
Topic:
/outputType:
example_interfaces/msg/StringQoS: Queue size of 10
Description: TestNode publishes test messages to this topic
Subscribers
Topic:
/outputType:
example_interfaces/msg/StringQoS: Queue size of 10
Description: LoggerServiceNode subscribes and logs messages at different levels
Services
Service Server:
/LoggerServiceNode/get_logger_levelsType:
rcl_interfaces/srv/GetLoggerLevelsDescription: Returns current logger level configuration
Service Server:
/LoggerServiceNode/set_logger_levelsType:
rcl_interfaces/srv/SetLoggerLevelsDescription: Sets logger level for the node
Example Usage
# Run the complete demo
ros2 run demo_nodes_py use_logger_service
The demo will automatically:
Output messages with default logger level (INFO)
Get current logger level (Unset/0)
Set to DEBUG level and output test message
Get logger level (DEBUG/10)
Set to WARN level and output test message
Get logger level (WARN/30)
Set to ERROR level and output test message
Get logger level (ERROR/40)
Expected output:
[INFO] [TestNode]: Output with default logger level:
[INFO] [LoggerServiceNode]: Output 1 with INFO logger level.
[WARN] [LoggerServiceNode]: Output 1 with WARN logger level.
[ERROR] [LoggerServiceNode]: Output 1 with ERROR logger level.
[INFO] [TestNode]: Current logger level: 0
[INFO] [TestNode]: Output with debug logger level:
[DEBUG] [LoggerServiceNode]: Output 2 with DEBUG logger level.
[INFO] [LoggerServiceNode]: Output 2 with INFO logger level.
...
To manually control logger level:
# Terminal 1: Run a node with logger service enabled
# (use a modified version or another node)
# Terminal 2: Get current logger level
ros2 service call /LoggerServiceNode/get_logger_levels \
rcl_interfaces/srv/GetLoggerLevels "{names: ['LoggerServiceNode']}"
# Terminal 3: Set logger level to DEBUG
ros2 service call /LoggerServiceNode/set_logger_levels \
rcl_interfaces/srv/SetLoggerLevels \
"{levels: [{name: 'LoggerServiceNode', level: 10}]}"