ROS日志 - 控制台格式化输出的全局变量 ROSCONSOLE_FORMAT

wifi链接:http://wiki.ros.org/rosconsole

版本:

  • ubuntu 16.04 Kinetic (这个版本之后支持了python,之前只支持c++)

介绍:

运行ros程序时,控制台日志输出输出是很重要的调试工具,ros可以通过全局变量的方式任意修改ros节点控制台输出流的格式,例如:

export ROSCONSOLE_FORMAT='[${severity}] [${time}]: ${message}'

把上述指令加入到~/.bashrc文件中(或者其他shell配置文件),即可自动配置为该格式,这样启动的程序就是自己想要的输出了。

关键字说明

关键字输出示例
severityERROR
messagehello world 0
time1284058208.824620563
(如果没有可用的模拟时间,它只显示wall time)

1284058208.824620563, 1234567890.123456789
(如果有模拟时间,则首先显示wall time,然后显示模拟时间)
walltime1284058208.824620563
(该特性在Python中一直可用,在c++中只有在ros console version 1.12.6后才可用)
thread0xcd63d0
loggerros.roscpp_tutorials
file/wg/bvu/jfaust/ros/stacks/ros_tutorials/roscpp_tutorials/talker/talker.cpp
line92
functionmain
node/talker
  • 个人常用配置
    export ROSCONSOLE_FORMAT='[${severity}][${walltime}]-[${node}-${line}]-[${thread}]:${message}'

后续版本的更新

从Noetic版本开始,新增了关键字time和walltime的格式说明符format string,用来修改时间格式(之前的版本为时间戳,不方便查看)。

export ROSCONSOLE_FORMAT='${time:format string}'
或者
export ROSCONSOLE_FORMAT='${walltime:format string}'

格式说明符输出示例
%Y-%m-%d %H:%M:%S2020-04-29 20:02:1
%y-%b-%d %I:%M:%S%p20-Apr-29 08:20:40PM
%x %r04/29/20 08:31:30 PM

以上格式说明符表不是全排列,可以按照自己的需求,自由组合。通过将format string替换为对应的格式说明符即可,例如${walltime:%Y-%m-%d %H:%M:%S}

ROS2控制台日志输出格式

  • 系统变量
    RCUTILS_CONSOLE_OUTPUT_FORMAT

file_name, 程序完整路径
function_name, 函数名
line_number, 代码行号
message, 具体日志信息
name, 节点名
severity, 日志级别, e.g. INFO
time, 时间戳,单位秒
time_as_nanoseconds, 时间戳,单位纳秒

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值