• 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

  • 相关阅读:
    Eclipse下搭建Django环境
    在pycharm中启动Django服务器
    Window10安装Django,并创建第一个Django项目
    windows10安装tensorflow CPU版本
    service中显示一个dialog
    xp局域网共享访问没权限处理
    java线程调度
    Java优雅停机
    jit编译原理
    java final思考
  • 原文地址:https://www.cnblogs.com/long5683/p/10939682.html
Copyright © 2020-2023  润新知