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 = ; 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++)的更多相关文章
- ROS - 日志
1.日志级别 日志消息分为五个不同的严重级别宏,与Android的Log定义的严重级别类似,如下基础宏: ROS_DEBUG_STREAM.ROS_INFO_STREAM.ROS_WARN_STREA ...
- .NET Core下的日志(3):如何将日志消息输出到控制台上
当我们利用LoggerFactory创建一个Logger对象并利用它来实现日志记录,这个过程会产生一个日志消息,日志消息的流向取决于注册到LoggerFactory之上的LoggerProvider. ...
- spark读取 kafka nginx网站日志消息 并写入HDFS中(转)
原文链接:spark读取 kafka nginx网站日志消息 并写入HDFS中 spark 版本为1.0 kafka 版本为0.8 首先来看看kafka的架构图 详细了解请参考官方 我这边有三台机器用 ...
- [转]ROS 传感器消息及RVIZ可视化Laserscan和PointCloud
https://blog.csdn.net/yangziluomu/article/details/79576508 https://answers.ros.org/question/60239/ho ...
- logback不输出日志消息,且SLF4J绑定源错误
我之前的项目已经成功使用过logback作为日志输出,但是今天新项目在使用的时候,不输出日志信息. 最后终于找到问题所在,并成功解决.解决步骤如下: 第一步:检查pom.xml 按照以往惯例,我先检查 ...
- Cap+Exceptionless实现日志消息发布订阅异常情况日志处理及Cap DashBoard授权处理
Dashboard介绍 capOptions.UseDashboard(dashoptions => { dashoptions.AppPath = "applicationpath& ...
- ROS:消息发布器和订阅器(c++)
学习资料主要源自http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29 $ roscd beginner_t ...
- Netty中消除开始的日志消息修改日志级别
我是使用logback作为日志打印,之前使用slf4j,日志打印不出,就干脆换掉了. 1.首先引入依赖 <dependency> <groupId>ch.qos.logback ...
- Log4j官方文档翻译(四、如何在java中输出日志消息)
我们已经创建来配置文件,本章详细的介绍下如何生成调试信息,并把他们转化成文本文件. 基本的例子 下面就是创建的一个基本的例子: log4j.properties的内容为: log = /usr/hom ...
随机推荐
- C++ 字符串相互转换 适合 lua project
#include <iostream> #include <Windows.h> #include <assert.h> #define Main main voi ...
- 使用Intellij中的Spring Initializr来快速构建Spring Boot工程
本文将介绍嵌入的Intellij中的Spring Initializr工具,它同Web提供的创建功能一样,可以帮助我们快速的构建出一个基础的Spring Boot/Cloud工程. 1.菜单栏中选择F ...
- JSOI 2008 魔兽地图
题目描述 DotR (Defense of the Robots) Allstars是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图DotA (Defense of the Ancients) ...
- vs 利用web deploy发布 常见问题解决
1. 下载并安装 web deploy, 安装时选择自定义,选择全部安装 https://www.iis.net/downloads/microsoft/web-deploy 2. 确保iis的管理 ...
- C# .net async await 学习
async/await简单介绍 在处理比较耗时的操作(如图片处理.数据压缩.http请求等)传统的异步方法是直接使用Thread或者Task进行操作,在复杂的应用编写中可能会出现回调的问题,因此C#目 ...
- ASP.NET的底层体系2
文章引导 1.ASP.NET的底层体系1 2.ASP.NET的底层体系2 引言 接着上一篇ASP.NET的底层体系1我们继续往下走 一.System.Web.HttpRuntime.ProcessRe ...
- Assert(断言) 的用法
Assert Assert是断言的意思,头文件为assert.h, assert是一个宏 功 能: 测试一个条件并可能使程序终止 用 法: void assert(int test); 在单元测试中经 ...
- UVA-699-The Falling Leaves-二叉树+递归
Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on ...
- QT之QComboBox
1.addItems需要注意的事项: 1.在QT中设置maxVisibleItems的值,设置Items的最大可显示的值.(一般默认为10) 2.在每次需要清除已经添加的tems的时候需要注意,ui. ...
- 20.multi_case04
import aiohttp import asyncio import ssl async def fetch(session, url): async with session.get(url,s ...