c++ - 带有 Pantheios 日志记录的自定义前端和后端

标签 c++ logging pantheios

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

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

尤其是,我对前端和后端之间的关系感到困惑。我如何让他们相互沟通?

最佳答案

不确定我是否完全理解您不理解的内容,但也许这就是问题的一部分。 ;-) 所以我会尽力而为,你让我知道它是否接近。

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

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

pantheios_fe_isSeverityLogged() 返回非零且 Pantheios core 时,

pantheios_be_logEntry() 将在要发送日志语句以进行输出时调用。已处理该语句(将代码中的所有参数组成一个字符串)。它将语句字符串发送到它应该去的任何地方。例如,be.fprintf 后端使用 fprint() 将其打印到控制台。

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

HTH

关于c++ - 带有 Pantheios 日志记录的自定义前端和后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1506903/

相关文章:

c++ - 这个开关 block 是如何执行的?

python - Django 通过电子邮件发送每次对logging.error的调用

java - 如何查看 Java 日志?

amazon-web-services - CloudWatch 中的摄取时间是什么意思

c++ - 如何为 Pantheios 记录器创建固定的后端 DLL

c++ - 如何将const char *作为LPCSTR参数的参数传递?

c++ - X509_get0_notBefore 和 X509_get0_noAfter 在此范围内?

c++ - Visual Studio C++ 0xC0000005 错误 : confused by memory allocation

c++ - 在 Pantheios 上有不同的配置