[ROS基礎]日誌 & Log File === >[name=鍾鎧煜][time=2022_06_28] [TOC] ## ROS日誌 與cout輸出流不一樣的是,會在終端顯示的同時寫入日誌文件,並可以在rqt可視化工具中瀏覽。 - 5種Level,DEBUG > INFO > WARN > ERROR > FATAL ```cpp= if(ros::console::set_logger_level(ROSCONSOLE_DEFAULT_NAME, ros::console::levels::Debug)){ ros::console::notifyLoggerLevelsChanged();//默認 } while(ros::ok()){ ROS_DEBUG("DEBUG "); ROS_INFO("INFO"); ROS_WARN("WARN"); ROS_ERROR("ERROR"); ROS_FATAL("FATAL"); loop_rate.sleep(); } ``` ![](https://i.imgur.com/a19jNOH.jpg) ## Log File 在ROS中,有一個特殊的話題叫作/rosout,它承載著所有節點的所有日誌消息。/rosout消息的類型是rosgraph_msgs/Log ![](https://i.imgur.com/J2OS6vX.jpg) 一般任務結束後日誌會輸出到隱藏目錄(ctrl + h) /home/your_computer/.ros/log 中,如果 log file 裡面的文件大小超過1GB,會出現 WARNING。 ![](https://img-blog.csdnimg.cn/20190214142920649.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzM2MzMwODA5,size_16,color_FFFFFF,t_70) - 可以使用如下指令清除log檔 檢查大小 $ rosclean check 刪除log檔 $ rosclean purge - 輸出自訂 log 文件 會輸出到當前目錄中 SHELL=/bin/bash PS1="$" script -f name.log - rqt 可視化工具 $ rosrun rqt_console rqt_console ![](https://i.imgur.com/C0klxkF.png) # Reference [ROS与C++入门教程-Logging(日志)](https://www.ncnynl.com/archives/201702/1299.html)