1.创建节点
cd chapt4/chapt4_ws/
ros2 pkg create example_parameters_rclcpp --build-type ament_cmake --dependencies rclcpp --destination-directory src --node-name parameters_basic --maintainer-name "joe" --maintainer-email "1027038527@qq.com"
2.新增parameters_basic.cpp
#include <chrono>
 #include "rclcpp/rclcpp.hpp"
 /*
     # declare_parameter            声明和初始化一个参数
     # describe_parameter(name)  通过参数名字获取参数的描述
     # get_parameter                通过参数名字获取一个参数
     # set_parameter                设置参数的值
 */
 class ParametersBasicNode : public rclcpp::Node {
  public:
   // 构造函数,有一个参数为节点名称
   explicit ParametersBasicNode(std::string name) : Node(name) {
     RCLCPP_INFO(this->get_logger(), "节点已启动:%s.", name.c_str());
     this->declare_parameter("rcl_log_level", 0);     /*声明参数*/
     this->get_parameter("rcl_log_level", log_level); /*获取参数*/
     /*设置日志级别*/
     this->get_logger().set_level((rclcpp::Logger::Level)log_level);
     using namespace std::literals::chrono_literals;
     timer_ = this->create_wall_timer(
         500ms, std::bind(&ParametersBasicNode::timer_callback, this));
   }
 private:
   int log_level;
   rclcpp::TimerBase::SharedPtr timer_;
  void timer_callback() {
     this->get_parameter("rcl_log_level", log_level); /*获取参数*/
     /*设置日志级别*/
     this->get_logger().set_level((rclcpp::Logger::Level)log_level);
     std::cout<<"======================================================"<<std::endl;
     RCLCPP_DEBUG(this->get_logger(), "我是DEBUG级别的日志,我被打印出来了!");
     RCLCPP_INFO(this->get_logger(), "我是INFO级别的日志,我被打印出来了!");
     RCLCPP_WARN(this->get_logger(), "我是WARN级别的日志,我被打印出来了!");
     RCLCPP_ERROR(this->get_logger(), "我是ERROR级别的日志,我被打印出来了!");
     RCLCPP_FATAL(this->get_logger(), "我是FATAL级别的日志,我被打印出来了!");
   }
 };
int main(int argc, char** argv) {
   rclcpp::init(argc, argv);
   /*创建对应节点的共享指针对象*/
   auto node = std::make_shared<ParametersBasicNode>("parameters_basic");
   /* 运行节点,并检测退出信号*/
   rclcpp::spin(node);
   rclcpp::shutdown();
   return 0;
 }
  
3.编译、运行节点
colcon build --packages-select example_parameters_rclcpp
 source install/setup.bash
ros2 run example_parameters_rclcpp parameters_basic

ros2 run example_parameters_rclcpp parameters_basic --ros-args -p rcl_log_level:=10