加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 初学者:如何使用Pantheios日志API库替代#ifdef DEBUG?如

发布时间:2020-12-16 09:30:57 所属栏目:百科 来源:网络整理
导读:我想在动态搜索算法中记录很多事件(例如关于收敛到全局最优的信息).此日志记录应该有一个开关来关闭/打开它.现在有很多可能实现这一目标: 实现算法的日志版本和非日志版本 – 冗余 使用宏 – 丑陋而不安全 使用c日志库(或:使用日志库的1%功能范围). 我决
我想在动态搜索算法中记录很多事件(例如关于收敛到全局最优的信息).此日志记录应该有一个开关来关闭/打开它.现在有很多可能实现这一目标:

>实现算法的日志版本和非日志版本 – >冗余
>使用宏 – >丑陋而不安全
>使用c日志库(或:使用日志库的1%功能范围).

我决定使用Pantheios,特别是因为所做的性能声明(不想因为这种日志记录而失去很多性能,这只是在开发中需要).我不得不承认,我不需要这个库的很多功能,但我认为我会更好/更安全地使用它.也许会有一个更不合适的替代品,我不知道(我需要编译时决定只用于记录 – >不知道是否有为此目的设计的记录库).

在编译,安装和最终链接之后(手动链接没有成功,但是使用scons构建工具;使用gcc – >显式链接),我想尝试一些例子.

让我们将其减少到类似以下内容:

#include "pantheios/pantheios.hpp"
#include "pantheios/frontends/stock.h"
const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = "pantheios_test";    // specify process identity

int main()
{
    pantheios::log_ALERT("alert-event");
    pantheios::log_DEBUG("debug-event");
    pantheios::log_INFORMATIONAL("just information");
    return 1;
}

使用以下文件进行链接:

LIBS = [‘pantheios.1.core.gcc44′,’pantheios.1.be.fprintf.gcc44′,’pantheios.1.bec.fprintf.gcc44’,
?????????????????????‘pantheios.1.fe.all.gcc44′,’pantheios.1.util.gcc44’]

现在的问题很简单:如何关闭/打开控制台输出?如何选择后端的严重级别?

查看文档会引导我进入许多具有严重性级别的函数,但这些函数会自动调用一次以进行初始化.我知道严重程度级别的动态变化是可能的.我不确切知道,我在哪里更改这些设置.他认为它们应该在前端组件中.链接到“fe_all”已经某种决定哪个级别记录广告哪个级别不是?

它应该相对容易,因为在我的情况下,我只需要编译时关于登录/关闭的决定.

谢谢你的帮助.

萨沙

解决方法

Is linking to “fe_all” already some kind of decisions which level is logged ad which level isn’t?

简短回答:是的.

fe.all启用所有严重性级别:记录“所有”meesages.

如果你想要更好的控制,试试fe.simple.默认情况下,它会打开调试版本中的所有内容以及发行版中除DEBUG和INFO之外的所有内容.您可以通过调用fe.simple标头中的函数pantheios_fe_simple_setSeverityThresdhold()(或类似的东西)来随时更改阈值 – 在调试或释放中(pantheios / frontends / fe.simple.h,iirc).

请注意,Pantheios被描述为日志记录API库.我认为其目的是通过现有的“丰富”日志库提供API,初始化控制和输出.它提供了“库存”前端和后端,方便了用户(i)快速上手,以及(ii)简单的要求(您的计划可能符合资格).

顺便说一下,我认为project site上的Pantheios论坛得到了很好的支持,所以你可能想在这里发布问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读