首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pantheios日志记录的自定义前端和后端

使用Pantheios日志记录的自定义前端和后端
EN

Stack Overflow用户
提问于 2009-10-01 22:46:05
回答 1查看 698关注 0票数 4

如果我遗漏了一些非常明显的东西,很抱歉,但我正在尝试理解如何用Pantheios编写自定义的front endback end。(我在C++中使用它,而不是C。)

我可以遵循初始化函数的目的(我认为),但我不确定其他函数:pantheios_be_logEntrypantheios_fe_getProcessIdentitypantheios_fe_isSeverityLogged

特别是,我对前端和后端之间的关系感到困惑。我如何让它们相互通信?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-02 23:03:02

我不确定我确切地理解了你不理解的内容,但这可能是问题的一部分。;-)所以我会尽我最大的努力,你会让我知道它是近还是远。

Pantheios初始化时,pantheios_fe_getProcessIdentity()被调用一次。您需要返回标识该进程的字符串。(实际上,它标识链接单元;这是在Imperfect C++中定义的术语,由Pantheios的创建者Matthew Wilson编写,表示链接名称的范围,即可执行程序模块或动态库模块。)

只要在应用程序代码中执行日志语句,就会调用pantheios_fe_isSeverityLogged()。它返回非零值,表示应处理语句并将其发送到输出(通过后端)。如果它返回零,则不进行任何处理。这就是为什么Pantheios is so fast的主要原因。

每当要发送日志语句进行输出时,当pantheios_fe_isSeverityLogged()返回非零值并且Pantheios core已经处理了该语句(将代码中的所有参数组成一个字符串)时,就会调用pantheios_be_logEntry()。它将语句字符串发送到它应该去的任何地方。例如,be.fprintf后端使用fprint()将其打印到控制台。

一旦你摸索了这些方面,你问题的第二部分就是它变得有趣的地方。当您的前端和后端被初始化时,它们会创建一些上下文(例如,C++对象),Pantheios内核为它们保存这些上下文,并在每次调用前端/后端API函数时返回它们。当您自定义两者时,您可以让它们通过某种共享上下文进行通信,这些上下文它们都知道,但Pantheios内核不知道(也不应该)知道,除了对它有一个不透明的句柄(void*)。

HTH

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1506903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档