ros2 c++控制台输出保存日志文件
时间: 2023-08-10 10:02:47 浏览: 402
在ROS 2中,可以使用logging功能来保存控制台输出日志文件。以下是一个简单的示例代码:
```cpp
#include "rclcpp/rclcpp.hpp"
int main(int argc, char **argv)
{
rclcpp::init(argc, argv);
// Create a logger
auto logger = rclcpp::get_logger("my_logger");
// Set the logging level
logger->set_level(rclcpp::logging::LoggingSeverity::INFO);
// Create a file sink for the logger
auto file_sink = std::make_shared<rclcpp::sinks::FileLogSink>("my_log_file.txt");
// Add the file sink to the logger
logger->add_sink(file_sink);
// Log some messages
RCLCPP_INFO(logger, "This is an info message.");
RCLCPP_WARN(logger, "This is a warning message.");
RCLCPP_ERROR(logger, "This is an error message.");
rclcpp::shutdown();
return 0;
}
```
在这个示例中,我们首先创建了一个logger,并设置了日志等级为INFO。然后,我们创建了一个文件日志记录器,并将其添加到logger中。最后,我们使用RCLCPP_INFO、RCLCPP_WARN和RCLCPP_ERROR函数记录一些不同级别的日志消息。
运行程序后,将在当前工作目录下创建一个名为"my_log_file.txt"的日志文件,其中包含所有记录的日志消息。
注意,文件日志记录器在程序退出时自动关闭,因此您不需要手动关闭它。
阅读全文