修改fastdds的源码,Fast-DDS/CMakeLists.txt修改
option(EPROSIMA_BUILD "Activate internal building" ON) #OFF改成ON
if(CMAKE_BUILD_TYPE MATCHES "^([Dd][Ee][Bb][Uu][Gg])$" # single config generator
OR ("Debug" IN_LIST CMAKE_CONFIGURATION_TYPES)) # multi config generator
option(LOG_NO_INFO ${LOG_NO_INFO_HELP} OFF)
else()
option(LOG_NO_INFO ${LOG_NO_INFO_HELP} OFF) #OFF改成ON
cmake_dependent_option(
FASTDDS_ENFORCE_LOG_INFO
"The LOG_NO_INFO option must be enforced regardless of selected configuration"
ON
"NOT LOG_NO_INFO"
ON) #OFF改成ON
然后按照正常编译流程编译,如过test部分报错,可以注释掉add_subdirectory(test)
修改Fast-DDS/src/cpp/CMakeLists.txt
option(INTERNAL_DEBUG "Activate developer debug messages" ON) #OFF改成ON
然后重新编译生成。
Log说明:
log分为三个级别:
Error 0
Warning 1
Info 2
头文件:
#include <fastrtps/log/Log.h>
using eprosima::fastdds::dds::Log;
打印Log时,先设置log级别,小于等于该级别的log都会打印。
Log::SetVerbosity(Log::Info);
打印LOG使用三个宏:
EPROSIMA_LOG_INFO(cat, msg);
EPROSIMA_LOG_WARNING(cat, msg);
EPROSIMA_LOG_ERROR(cat, msg);
其中cat标识category,根据自己的程序自行定义,直接输入字符串不需要引号。msg表示具体要打印的字符串,可以用双引号括起来。
恢复默认设置:
Log::Reset();
LOG示例
#include <fastrtps/log/Log.h>
using eprosima::fastdds::dds::Log;
...
Log::SetVerbosity(Log::Info);
EPROSIMA_LOG_INFO(HW1, "Statring...1");
EPROSIMA_LOG_WARNING(HW2, "Statring...2");
EPROSIMA_LOG_ERROR(HW3, "Statring...3");
…
Log::Reset(); //用完之后,回到默认设置。
输出的内容类似下面:
如果设置成Info级别,会打印很多自带的log。