Alternatives to rosout logging: mongodb or?

asked 2018-06-11 02:43:36 -0600

knxa gravatar image

updated 2018-11-16 11:25:57 -0600

I find the standard filebased logging of ROS to have some big limitations:

  1. It is hard to correlate log messages from different nodes. A GUI tool like rqt-console seems targeted to runtime inspection and requires a roscore running.
  2. Hard to inspect log messages across a ros restart
  3. Hard to programmatically dump log messages for a certain timespan or bounded by certain log messages.
  4. Inconsistent timestamps: c++ nodes always logs seconds since epoch, python nodes some local timestamp (though the latter can be changed)

Of cause the filebased approach has some big advantages, one being simplicity.

Ideally I would like to go back at least the latest 24 hours and inspect any topic message sent (which includes log messages). As for now I quickly end up having 500 log messages/second, or roughly disk space consumption of 1GB/hour.

I am considering using MongoDB for logging, as a replacement for the files created by rosout.

Several packages seem to offer a mongodb solution: warehouse_ros, mongodb_log, mongodb_store

  1. Are thesed commonly used as a replacement for standard logging or more as an alternative to rosbag (specific topic recording)?
  2. What are your experience with logging through mongodb for ROS?
  3. Which package should I choose?
edit retag flag offensive close merge delete