Alternatives to rosout logging: mongodb or?
I find the standard filebased logging of ROS to have some big limitations:
- 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.
- Hard to inspect log messages across a ros restart
- Hard to programmatically dump log messages for a certain timespan or bounded by certain log messages.
- 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
- Are thesed commonly used as a replacement for standard logging or more as an alternative to rosbag (specific topic recording)?
- What are your experience with logging through mongodb for ROS?
- Which package should I choose?