代码之家  ›  专栏  ›  技术社区  ›  JamieH

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

  •  4
  • JamieH  · 技术社区  · 15 年前

    如果我错过了一些非常明显的东西,我很抱歉,但我想知道如何写一个习惯 front end back end 具有 Pantheios . (我使用C++,而不是C)

    我可以遵循初始化功能的目的(我认为),但我不确定其他功能: pantheios_be_logEntry , pantheios_fe_getProcessIdentity pantheios_fe_isSeverityLogged .

    尤其是,我对前端和后端之间的关系感到困惑。我如何让他们彼此交流?

    1 回复  |  直到 15 年前
        1
  •  3
  •   dcw    15 年前

    我不确定我完全理解你不理解的东西,但这可能是问题的一部分。;-)所以我会尽我最大的努力,你会告诉我它是否接近。

    pantheios_fe_getProcessIdentity() 一次,何时 Pantheios 正在初始化。您需要返回一个标识进程的字符串。(实际上,它标识链接单元;在 Imperfect C++ 由Pantheios的创建者Matthew Wilson编写,这意味着链接名称的范围,即可执行程序模块或动态库模块。)

    pantheios_fe_isSeverityLogged() 每当在应用程序代码中执行LOG语句时调用。它返回非零以指示应处理该语句并将其发送到输出(通过后端)。如果返回零,则不进行处理。这就是为什么 Pantheios is so fast .

    pantheios_be_logEntry() 每当要发送日志语句以进行输出时调用, Pantheios_fe_isseverylogged()。 已返回非零和 Pantheios core 已处理语句(将代码中的所有参数组成一个字符串)。它将语句字符串发送到它应该到达的任何位置。例如,be.fprintf后端使用 fprint() .

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

    高温高压