在 ~/.ros/log 存在ROS的运行日志. 经常会有占用很大的空间 >1G.
-
使用rosclean命令,该命令的参数如下
-
-
$ rosclean -h
-
usage: rosclean [-h] {check,purge} ...
-
-
positional arguments:
-
{check,purge}
-
check Check usage of log files
-
purge Remove log files
-
-
optional arguments:
-
-h, --help show this help message and exit
-
检测log文件,直接输入rosclean check即可
-
-
$ rosclean check
-
2.8G ROS node logs
-
清理log文件,使用rosclean purge命令删除log文件
-
-
miracle@miracle:~/.ros$ rosclean purge
-
Purging ROS node logs.
-
PLEASE BE CAREFUL TO VERIFY THE COMMAND
-
Okay to perform:
-
-
rm -rf /home/miracle/.ros/log
-
(y/n)? 提示是否删除
可以通过程序设置那些log被保存. 例如代码 只保存Error的日志.
if (ros::console::set_logger_level(ROSCONSOLE_DEFAULT_NAME, ros::console::levels::Error)) { // Change the level to fit your needs
ros::console::notifyLoggerLevelsChanged();
}
或者通过 rosservice call 设置 节点 set_logger_level.
点击(此处)折叠或打开
-
$ rosservice info /amcl/set_logger_level
-
Node: /amcl
-
URI: rosrpc://127.0.0.1:52616
-
Type: roscpp/SetLoggerLevel
-
Args: logger level
点击(此处)折叠或打开 roscpp/SetLoggerLevel 消息定义
-
roscpp/SetLoggerLevel Service
-
File: roscpp/SetLoggerLevel.srv
-
Raw Message Definition
-
string logger
-
string level
-
---
调用
命令:rosservice call /node-name/set_logger_level ros.package-name level条命令调用 set_logger_level 服务,该服务由各个节点自动提供。
node-name 是你期望设置日志级别的节点名称
package-name 正如你猜测的一样,是拥有这个节点的功能包的名称
level 参数是 DEBUG、INFO、WARN、ERROR、FATAL 中的一个89字符串,即为节点设置的日志级别。
-
$ rosservice call /big_teleop_keyboard/get_loggers
-
loggers:
-
-
-
name: "ros"
-
level: "info"
-
-
-
name: "ros.big_teleop"
-
level: "debug"
-
-
-
name: "ros.roscpp"
-
level: "info"
-
-
-
name: "ros.roscpp.roscpp_internal"
-
level: "info"
-
-
-
name: "ros.roscpp.roscpp_internal.connections"
-
level: "info"
-
-
-
name: "ros.roscpp.superdebug"
-
level: "warn"
-
rosservice call /big_teleop_keyboard/set_logger_level ros.big_teleop DEBUG
阅读(5143) | 评论(0) | 转发(0) |