# 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**: `/output` - **Type**: `example_interfaces/msg/String` - **QoS**: Queue size of 10 - **Description**: TestNode publishes test messages to this topic ## Subscribers - **Topic**: `/output` - **Type**: `example_interfaces/msg/String` - **QoS**: Queue size of 10 - **Description**: LoggerServiceNode subscribes and logs messages at different levels ## Services - **Service Server**: `/LoggerServiceNode/get_logger_levels` - **Type**: `rcl_interfaces/srv/GetLoggerLevels` - **Description**: Returns current logger level configuration - **Service Server**: `/LoggerServiceNode/set_logger_levels` - **Type**: `rcl_interfaces/srv/SetLoggerLevels` - **Description**: Sets logger level for the node ## Example Usage ```bash # Run the complete demo ros2 run demo_nodes_py use_logger_service ``` The demo will automatically: 1. Output messages with default logger level (INFO) 2. Get current logger level (Unset/0) 3. Set to DEBUG level and output test message 4. Get logger level (DEBUG/10) 5. Set to WARN level and output test message 6. Get logger level (WARN/30) 7. Set to ERROR level and output test message 8. 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: ```bash # 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}]}" ```