FastDDS打开log开关,输出log

本文介绍了如何修改FastDDS的CMakeLists.txt文件来改变内部构建选项和日志行为。通过将选项设置为ON,允许在DEBUG模式下启用额外的日志信息。同时,文章详细解释了日志的三个级别(Error,Warning,Info)以及如何使用EPROSIMA_LOG宏进行日志打印和恢复默认设置。
摘要由CSDN通过智能技术生成

修改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。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值