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 = ; i < ; i++){

            ROS_INFO_STREAM_ONCE("Log info  i = " << i);

            if(i >= ){

                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

ROS 日志消息(C++)的更多相关文章

  1. ROS - 日志

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

  2. .NET Core下的日志(3):如何将日志消息输出到控制台上

    当我们利用LoggerFactory创建一个Logger对象并利用它来实现日志记录,这个过程会产生一个日志消息,日志消息的流向取决于注册到LoggerFactory之上的LoggerProvider. ...

  3. spark读取 kafka nginx网站日志消息 并写入HDFS中(转)

    原文链接:spark读取 kafka nginx网站日志消息 并写入HDFS中 spark 版本为1.0 kafka 版本为0.8 首先来看看kafka的架构图 详细了解请参考官方 我这边有三台机器用 ...

  4. [转]ROS 传感器消息及RVIZ可视化Laserscan和PointCloud

    https://blog.csdn.net/yangziluomu/article/details/79576508 https://answers.ros.org/question/60239/ho ...

  5. logback不输出日志消息,且SLF4J绑定源错误

    我之前的项目已经成功使用过logback作为日志输出,但是今天新项目在使用的时候,不输出日志信息. 最后终于找到问题所在,并成功解决.解决步骤如下: 第一步:检查pom.xml 按照以往惯例,我先检查 ...

  6. Cap+Exceptionless实现日志消息发布订阅异常情况日志处理及Cap DashBoard授权处理

    Dashboard介绍 capOptions.UseDashboard(dashoptions => { dashoptions.AppPath = "applicationpath& ...

  7. ROS:消息发布器和订阅器(c++)

    学习资料主要源自http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29 $ roscd beginner_t ...

  8. Netty中消除开始的日志消息修改日志级别

    我是使用logback作为日志打印,之前使用slf4j,日志打印不出,就干脆换掉了. 1.首先引入依赖 <dependency> <groupId>ch.qos.logback ...

  9. Log4j官方文档翻译(四、如何在java中输出日志消息)

    我们已经创建来配置文件,本章详细的介绍下如何生成调试信息,并把他们转化成文本文件. 基本的例子 下面就是创建的一个基本的例子: log4j.properties的内容为: log = /usr/hom ...

随机推荐

  1. Windows 设置内网和外网同时使用

    想要电脑同时使用内网和外网必须具备两个网卡,一个是无线网卡一个是本地连接,无线网卡用来连接wifi也就是外网,而本地连接需要网线连接内网,外网是不需要做设置的,我们只需要设置内网即可,鼠标右击电脑右下 ...

  2. PL/SQL创建用户

    步骤一:新建 步骤二:填写信息 对应SQL代码 -- Create the user create user WENT identified by "longrise" defau ...

  3. System.Clollections.IEnumerable.cs

    ylbtech-System.Clollections.IEnumerable.cs 1.程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicK ...

  4. 18-2-call和apply

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. UMP系统功能 容灾

  6. 打开新窗口(window.open) open() 方法可以查找一个已经存在或者新建的浏览器窗口。 语法: window.open([URL], [窗口名称], [参数字符串])

    打开新窗口(window.open) open() 方法可以查找一个已经存在或者新建的浏览器窗口. 语法: window.open([URL], [窗口名称], [参数字符串]) 参数说明: URL: ...

  7. Qt : 隐式数据共享(copy on write)

    copy on write 意思当内容有变动的时候,才对容器中的数据结构进行复制.否则仅作共享. QT许多类中使用了隐式数据共享技术,来最大化资源利用率和最小化拷贝时的资源消耗. 在数据传递时,其实只 ...

  8. [转]Git 常用命令详解

    史上最浅显易懂的Git教程 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ ht ...

  9. 【JZOJ3319】雪地踪迹

    description 森林里有一片长方形的草地,在清晨的大雪过后被一层厚厚的积雪所掩盖(下图左). 住在森林里的兔子和狐狸,穿越草地,都会在雪地上留下他们的踪迹.他们总是从左上角进入,并从右下角离开 ...

  10. 【转载】objective-c强引用与弱引用

    形象比喻蛮好玩的^_^    __weak 和 __strong 会出现在声明中   默认情况下,一个指针都会使用 __strong 属性,表明这是一个强引用.这意味着,只要引用存在,对象就不能被销毁 ...