如何修改Ubuntu20.04上ROS1/Noetic的rospy日志输出格式?
解决ROS1 Noetic日志格式简化问题(无代码修改)
方案1:通过环境变量直接指定日志格式
ROS的Python节点日志格式可通过ROS_PYTHON_LOG_FORMAT环境变量直接覆盖,无需修改配置文件或安装额外包。终端启动节点前执行:
export ROS_PYTHON_LOG_FORMAT="%(levelname)s: %(message)s"
该格式仅保留日志级别与消息内容,剔除时间戳、进程号等冗余字段。若要永久生效,将此行添加至~/.bashrc,再执行source ~/.bashrc即可。
方案2:在launch文件中全局配置
若要统一配置launch文件内所有节点的日志格式,添加<env>标签:
<launch> <!-- 设置全局日志格式 --> <env name="ROS_PYTHON_LOG_FORMAT" value="%(levelname)s: %(message)s" /> <!-- 你的节点启动指令 --> <node name="your_node" pkg="your_package" type="your_node_script.py" /> </launch>
启动该launch文件时,所有Python节点都会采用此简化格式输出日志。
方案3:正确修改系统级日志配置文件
你之前修改/opt/ros/noetic/etc/ros/python_logging.conf未生效,大概率是配置项错误或节点未读取到更新后的配置。正确操作步骤:
- 打开配置文件:
sudo nano /opt/ros/noetic/etc/ros/python_logging.conf
- 找到
[formatter_default]段,修改format字段为目标格式:
[formatter_default] format=%(levelname)s: %(message)s datefmt= class=logging.Formatter
- 修改后需完全关闭所有ROS节点/launch进程,再重新启动,确保配置生效。
关于roslog包找不到的说明
ROS Noetic的Python日志功能由rosout与标准logging模块结合实现,不存在单独的roslog包。无需额外安装该包,直接通过上述环境变量或配置文件修改即可调整日志格式。
内容的提问来源于stack exchange,提问作者pitosalas
相关产品推荐
相关产品推荐

