【问题标题】:Completely disable ROS from logging to log files?完全禁止 ROS 记录日志文件?
【发布时间】:2021-12-19 09:08:10
【问题描述】:
我正在尝试禁止 ROS 创建任何 ROS 文件,但我找不到任何实际可行的解决方案。
我试过了
log4j.threshold=OFF 如http://wiki.ros.org/rosconsole 中所述,但这对我不起作用。
我也尝试设置export ROSOUT_DISABLE_FILE_LOGGING=True,但这也无济于事。
我正在使用 ROS melodic,我正在使用 bazel 构建包而不是 CMake。
我完全被卡住了,ROS 是否有其他方法不生成任何日志文件。
【问题讨论】:
标签:
python
c++
logging
ros
bazel
【解决方案1】:
没有一种“好”的方法可以完全禁用所有日志记录,但是,它可以很好地解决。
首先,您可以阻止 rosout 被 'rosmaster --core 旋转。这将严格启动 roscore 而不是输出。
对于roscpp 日志记录,您可以添加一个额外的编译标志-DROSCONSOLE_MIN_SEVERITY=5 ${ROS_COMPILE_FLAGS},然后重建您的系统。这将大部分禁用 cpp 日志记录,但有轻微例外;其中一个内部记录器似乎绕过了这一点。
对于rospy,有一个日志配置文件位于/opt/ros/$ROS_DISTRO/etc/ros/python_logging.conf 和/opt/ros/$ROS_DISTRO/share/rosgraph/conf/python_logging.conf。如果您删除这些文件,python 将跳过日志记录完成。请注意,我不推荐这种方法。
另一个可能有用的解决方案是将日志目录设置为临时存储系统。 export ROS_LOG_OUT=/tmp/roslogs。这仍将写入日志文件,但所有条目将在重新启动时从驱动器中删除。