问题标签 [pantheios]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1768 浏览

c++ - 从 dll 使用 Pantheios 日志框架

我试图从 c++ dll 中使用 pantheios 日志框架。我已经成功构建了 dll,它通过我的测试应用程序(C++ MFC 应用程序)执行。

我使用了包含以下内容的隐式链接:

我的 DllMain 使用以下调用初始化 pantheios:

当我执行以下代码时,我得到一个

Microsoft C++ exception: stlsoft::winstl_project::windows_exception at memory location 0x0013da84

我试图使用显式链接而不是任何结果。

0 投票
1 回答
698 浏览

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

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

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

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

0 投票
1 回答
656 浏览

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

我有一个 VS 2005 解决方案,它有许多项目(大多数是 DLL,1 个 EXE 是一个 CppUnit 项目),我正在尝试为 Pantheios 记录器添加一个固定的后端 DLL,以便我可以在整个过程中使用单个记录器实例解决方案。按照以下 URL 的说明进行操作:

我似乎有一个固定的后端 DLL,它支持基本的 Pantheios 日志记录语句log_DEBUG, log_ERROR等,甚至是跟踪 API ( http://www.pantheios.org/doc/html/group__group____tracing.html ),例如PANTHEIOS_TRACE_NOTICE

但是我被困住了,因为 Pantheios 需要“插入器”(将基本类型转换为字符串的 API)(http://www.pantheios.org/doc/html/group__group____application__layer__interface____inserters.html)来处理例如 int、double、float , 指针等

我不知道如何在我创建的固定后端 DLL 中实现这些“插入器”。如果我只是从其他 DLL 中调用它们,则会收到如下错误:

DLLApp.obj : error LNK2019: unresolved external symbol "public: __thiscall pantheios::integer::integer(int,int)" (??0integer@pantheios@@QAE@HH@Z) referenced in function "public: void __thiscall DLLApp::DLLAppSetup(void)" (?DLLAppSetup@DLLApp@@QAEXXZ)

我不确定我是否可以(并且需要)使用 sourceforge.net 文章中提到的 .DEF 导出“整数”(和其他插入器)类,或者是否还有其他我遗漏的东西。

非常感激任何的帮助。提前致谢。

0 投票
2 回答
1216 浏览

c++ - 如何使用 Pantheios 在日志中包含调用类和行号?

我刚开始使用Pantheios,感觉它真的是一个很棒的日志库!甚至可能是 C++ 中最伟大的一个!恭喜作者!

但是,我在文档和所有论坛帖子中都找不到有关如何在日志中包含调用类和行号的任何内容。

我使用be.file作为后端,并定义了自定义前端,查看fe.simple的示例。这是否与PANTHEIOS_EXTERN_C const char PANTHEIOS_FE_PROCESS_IDENTITY[]或我完全错误的方式有关?

0 投票
0 回答
658 浏览

c++ - 使用 pantheios 文件库存后端的问题

我正在尝试使用 pantheios 文件库后端从我的 C++ 中的 dll 登录。文件被创建,但没有任何内容写入文件。
这是我的代码片段

我收到 Init Passed 消息框,但文件中没有转储任何日志语句。

0 投票
4 回答
4570 浏览

c++ - 如何使用 pantheios 登录到文件?

我尝试了 pantheios 的示例来登录到文件,但无法使其工作。消息在控制台中正确显示,但未创建日志文件。自从我看到那个线程以来,我试图改变严重性级别,但没有人工作。

这是代码:

我有一个“include_pantheios.cpp”文件用于隐式链接目的。这里是 :

有人看到我的问题来自哪里吗?提前致谢,

文森特

0 投票
1 回答
3092 浏览

c++ - 初学者:如何使用 Pantheios 日志记录 API 库替代 #ifdef DEBUG?如何定义 SEVLEVEL?

我想在动态搜索算法中记录很多事件(例如,关于收敛到全局最优的信息)。此日志记录应该有一个开关来关闭/打开它。现在有很多可能性来实现这一目标:

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

我决定使用Pantheios,特别是因为提出了性能声明(不想因为这种日志记录而损失太多性能,这仅在开发中需要)。我不得不承认,我不需要这个库的太多功能,但我认为我会是一种更好/更安全的使用方式。也许会有一个我不知道的更合适的替代方案(我需要编译时决策只用于日志记录->不知道是否有为此目的设计的日志记录库)。

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

让我们将其简化为以下内容:

使用以下文件完成链接:

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”是否已经某种决定哪个级别被记录广告哪个级别不是?

这应该相对容易,因为在我的情况下,我只需要在编译时做出关于登录/注销的决定。

谢谢你的帮助。

萨沙

0 投票
2 回答
310 浏览

c++ - 使用 Pantheios 登录时如何利用现有的 operator<< 重载?

如果有大量用户定义的类型实现operator<<写入std::ostream. 在使用 Pantheios 记录我的类型时如何使用这些?

0 投票
3 回答
1220 浏览

c++ - c++ 日志库用于异步捕获高吞吐量数据的可行性?

我正在使用用 C++ 编写的实时系统。我们希望使用 boost 或 pantheios 进行日志记录。该系统有一些标准的日志记录要求,我相信任何一个框架都可以满足这些要求,但除此之外,我们还希望能够记录该系统捕获的所有输入。此输入将被多个线程捕获,包括一些具有实时约束并且无法承受低效日志记录的显着延迟的线程。这应该会导致要记录的数据的高吞吐量。

我主要想知道是否可以信任任何一个框架来管理来自多个线程的如此高吞吐量的日志记录,而不会延迟我的时间关键线程。此外,我们可能需要进行一些数据清理,这将需要添加某种钩子,该钩子能够识别具有安全数据的捕获输入,运行我们的数据清理钩子,并维护一个包含已清理值映射的缓冲区。

我相信这两个日志平台都可以做到这一点,但是快速浏览一下它们的 API 并不清楚。任何使用过这两种日志工具的人都可以给我一些反馈,说明它们在这种情况下的效率如何,实现我所描述的内容有多容易,或者他们在两个日志框架之间的偏好?真的任何信息都会有用。

谢谢

0 投票
1 回答
411 浏览

windows - Pantheios 宽字符?

我正在尝试将日志记录集成到我的 Windows C++ 应用程序中,并且我想使用 Pantheios,因为它通常有非常好的评论。也就是说,包含的所有示例都使用诸如 PANTHEIOS_LITERAL_STRING 等宏来包装字符串文字,并且需要如下类型定义:

typedef std::basic_string<PAN_CHAR_T> string_t;

正确编译。我认为这很丑陋,并且宁愿不使用这些 typedef。

这是一个例子: http: //www.pantheios.org/doc/html/cpp_2misc_2example_8cpp_8misc_8strings_2example_8cpp_8misc_8strings_8cpp-example.html

我尝试在禁用 PANTHEIOS_USE_WIDE_STRINGS 的情况下编译 Pantheios,但出现很多构建错误——有什么想法吗?