zoukankan      html  css  js  c++  java
  • ROS 日志消息(C++)

    1.日志级别

    日志消息分为五个不同的严重级别宏,与Android的Log定义的严重级别类似,如下基础宏:

    ROS_DEBUG_STREAM、ROS_INFO_STREAM、ROS_WARN_STREAM、ROS_ERROR_STREAM、ROS_FATAL_STREAM(按照严重程序级别排序,低到高)
        C++代码:
    
        #include <ros/ros.h>
    
        int main(int argc, char** argv){
    
            ros::init(argc, argv, "hello_ros");
    
            ros::NodeHandle nh;
    
            ROS_DEBUG_STREAM("Log DEBUG");
    
            ROS_INFO_STREAM("Log INFO");
    
            ROS_WARN_STREAM("Log WARN");
    
            ROS_ERROR_STREAM("Log ERROR");
    
            ROS_FATAL_STREAM("Log FATAL");
    
        }

    从运行结果来看,你会发现DEBUG没有打印出来,Why?淡定,4会解答

    2.循环单次日志

    基础宏后面添加_ONCE,代表日志在循环迭代中只有第一次才会打印日志:

        C++代码:
    
        #include <ros/ros.h>
    
        int main(int argc, char** argv){
    
            ros::init(argc, argv, "hello_ros");
    
            ros::NodeHandle nh;
    
            for(int i = 0; i < 10; i++){
    
                ROS_INFO_STREAM_ONCE("Log info  i = " << i);
    
                if(i >= 2){
    
                    ROS_INFO_STREAM_ONCE("Log info  i = " << i);
    
                }
    
            }
    
        }

    3.频率日志

    基础宏后面添加_THROTTLE就变为了频率日志,入ROS_INFO_STREAM_THROTTLE(interval, message),第一个参数interval代表以秒为单位的时间量,时间量指的是两个日志出现的最小时间间隔


    4.打开、关闭日志

    1中提到DEBUG日志信息没有输出,原因是C++程序默认的日志级别为INFO,所有DEBUG日志被忽略掉了,那问题来了,如何打开DEBUG级别日志呢?

    rosservice call /node-name/set_logger_level ros.package-name level
    C
    ++代码: #include <ros/ros.h> int main(int argc, char** argv){     ros::init(argc, argv, "hello_ros");     ros::NodeHandle nh;     while(ros::ok()){         ROS_DEBUG_STREAM("Log DEBUG");         ROS_INFO_STREAM("Log INFO");         ROS_WARN_STREAM("Log WARN");         ROS_ERROR_STREAM("Log ERROR");         ROS_FATAL_STREAM("Log FATAL");     } } 启动上面节点,然后终端运行rosservice call /hello_ros/set_logger_level ros.hello DEBUG

    转自:https://www.jianshu.com/p/b360728ad6d1

  • 相关阅读:
    HDU 3081 Marriage Match II
    HDU 4292 Food
    HDU 4322 Candy
    HDU 4183 Pahom on Water
    POJ 1966 Cable TV Network
    HDU 3605 Escape
    HDU 3338 Kakuro Extension
    HDU 3572 Task Schedule
    HDU 3998 Sequence
    Burning Midnight Oil
  • 原文地址:https://www.cnblogs.com/long5683/p/10939682.html
Copyright © 2011-2022 走看看