紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
ROS2的节点日志信息为什么做不到实时写入磁盘文件
-
如题,在我的实验测试过程中发现如下现象:
1、直接用命令行启动 A_pkg 的A_node,即:ros2 run A_pkg A_node .
此时A节点生成的日志信息不是实时存入节点对应的日志文件,而是在积累了一些日志信息以后才会统一的存入文件。这就会导致出现 当节点结束运行的时候,最后的一些日志信息没有被及时的存入日志文件,导致信息丢失。2、 使用launch文件启动节点,并且在launch文件中的 output 设置为 log 或者 both。
此时 launch生成的一个属于自己的日志文件 它是能够做到实时记录任何日志或其他输出信息的,但是 节点日志依然做不到实时记录。所以我想请问的是:
1、 我能否通过设置某些配置,做到节点的日志文件能实时地记录日志信息?我该怎么配置?
2、如果做不到1,我能否关闭节点的日志配置,只保留launch的日志记录,该怎么关闭? -
@1296257898 ros2 的日志是基于 spdlog :https://github.com/gabime/spdlog 的,出现这一现象的原因应该是,为了提高存储效率,先放内存再放磁盘。
建议操作方法有:- 使用 /rosout 这个话题是实时输出的,直接记录它就行,节点数据都可以直接查询
- 使用 export RCUTILS_LOGGING_BUFFERED_STREAM=0 强制取消缓冲尝试
- 从源码入手:rcl_logging_spdlog 负责将日志放到磁盘:https://github.com/ros2/rcl_logging
-
@小鱼 请问一下 你们做的基于ROS2的项目里,日志是用ROS2本身提供的,还是用其他的框架?有什么好用的日志框架推荐吗
-