问题标签 [boost-log]

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 回答
3075 浏览

c++ - 不正确的 Boost Log 时间戳格式

我正在使用 Boost 1.54 Log,并通过以下方式初始化我的日志记录:

这是生成的输出示例:

Timestamp 的输出秒数完全不正确,但根据 Boost Log 文档%S,秒数的格式设置是正确的。这会是一个错误吗?

0 投票
1 回答
1062 浏览

c++ - Boost 日志宏说明

我按照这里的升压日志教程 http://boost-log.sourceforge.net/libs/log/doc/html/index.html

我尝试编译并运行这个示例

它无法编译。错误返回为http://pastebin.com/DcLdWGke

然后我编辑我的代码如下:

现在它符合并运行良好。我在 boost 网站上读到了这个宏:

如果在用户代码中定义,该库将假定二进制文件构建为动态加载的库(“dll”或“so”)。否则,假定库是在静态模式下构建的。必须为使用日志记录的用户应用程序的所有翻译单元定义或不定义此宏。这个宏可以帮助在支持它的平台上自动链接。

所以我的问题是:为什么我需要#define BOOST_LOG_DYN_LINK 来编译?

0 投票
1 回答
927 浏览

c++ - 如果应用程序以 CTRL_CLOSE_EVENT 退出,则 boost::log add_file_log 不写入

我在 Windows 7 上,在控制台应用程序中使用 v1.54 中的 boost::log 。我正在使用带有旋转的 add_file_log(),只要我的 main() 函数退出,它就可以正常工作。但是,如果应用程序在外部使用 powershell CloseMainWindow() 终止,则永远不会写入日志文件。

我已经使用 SetConsoleCtrlHandler() 设置了一个 Windows 控制处理程序,并且可以捕获 CTRL_CLOSE_EVENT,但我不知道是否可以调用 boost::log 方法来强制在我的应用程序退出之前写入日志文件。有人对此有解决方案吗?

谢谢,

0 投票
1 回答
499 浏览

c++ - boost::log 教程中的代码是如何工作的?

我已经有一段时间没有使用 C++ 了,我对语法感到有些迷茫。boost::log有人可以从图书馆教程中向我解释以下几行吗?

据我所知,它是函数set_filter()调用,但它需要一个filter对象:

和表达式:

返回布尔值?operator >=这里超载了吗?我试图通过查找定义和宏来解决这个问题,但我看不到任何运算符重载。在我看来这不合逻辑。它有什么作用?它是如何工作的?

0 投票
1 回答
687 浏览

c++ - 使用 Boost.Log(或 Boost.Thread)时 dllinit.cpp 第 703 行中的 MFC ASSERT

当我尝试在我的一个 DLL 中使用 Boost.Log 时,我在 dllinit.cpp 中收到一个断言。

我有一个 tools.dll,其中包含我的日志记录工具,我尝试使用 Boost.Log 实现日志记录。此 tools.dll 由另一个 helper.dll 引用,并且两个 DLL 都在应用程序中使用。

但是,当我启动应用程序时,我得到了 ASSERT。

Boost 1.54 和(包括)Boost.Log 以及 Boost 1.48 和 Boost.Log 1.1 都会发生这种情况。

我浏览了很多邮件列表和旧帖子。到目前为止我所理解的,Boost.Thread 中的 _pRawDllMain 指针存在问题,有人建议将其注释掉

但这会导致内存泄漏?这个帖子说它会在1.40之后修复,但我不知道,如果这已经完成了。此处建议的动态链接到 Boost没有帮助。

到目前为止,询问boost-users并没有帮助。

任何提示,我应该检查什么?

编辑: 它被配置为标准 DLL,但对 MFC100.dll 有依赖,因为我使用 afxwin.h 中的 API 来获取应用程序的版本信息。

0 投票
1 回答
842 浏览

c++ - Boost.Log 命名空间错误

将 operator<< 覆盖与位于命名空间下的操作数一起使用时,我遇到了错误。我什至不确定是什么导致了这个问题,请查看源代码:

使用 MSVC2013 编译时的完整编译日志(根据要求):

Boost.Log 中有错误还是我做错了什么?

升压版本是 1.55。

0 投票
1 回答
864 浏览

c++ - boost::log (boost logging): BOOST_LOG_FUNCTION 只在主线程中有效

考虑以下函数:

如果我只是在“main”中调用“thread()”,我在“thread()”中创建的日志条目看起来像预期的那样:

但是,如果您在函数中使用“thread()”:

相应的日志条目为空:

我该如何解决?

0 投票
1 回答
100 浏览

c++ - 测试是否使用 Boost.Log 生成日志消息

我目前在我的一个软件项目中使用 Boost.Log。有一种情况,我使用日志消息报告错误情况。我想测试使用谷歌测试框架是否正确检测到这种情况。为了清楚起见,我想测试是否生成了消息。它可能会被过滤器删除,但这不应导致测试失败。这可能吗?有什么提示吗?谢谢!

0 投票
1 回答
465 浏览

c++ - 为什么 Boost Log 记录器操作不是 const?

我正在尝试使用严重性通道记录器,但我遇到了BOOST_LOG_SEV不是 const 方法的问题——我在想是因为 open_record() 和 push_record()

这基本上会迫使我使我的类中的所有方法都不是 const,因为他们想写给他们的记录器。我真的负担不起——所以我目前仅限于全球记录器。

在我当前的实现中,每个类都有一个以类名作为通道的记录器(在它们的构造函数中初始化),它在任何时候发出日志消息BOOST_LOG_SEV(this->logger, level)

我很想听听非常量背后的原因,以及我的设计是否不适合 Boost::Log。

0 投票
1 回答
3587 浏览

c++ - Boost.Log 在每个日志记录语句后刷新

我对 Boost.Log 库有点陌生,第一印象非常好,但有一件事已经花费了很多时间,我无法解决。我想让 Boost.Log 立即将每条消息写入日志文件。我知道其他问题(IIIIII),但是它们没有帮助。考虑来自 boost docs 的这个例子,下一个代码是相同的,除了我设置auto_flushtrue

在调试时,sample.log执行第一个命令(//1)后会创建一个空,但是在执行 BOOST_LOG 后,日志文件仍然是空的,只有在return语句之后,Hello world!才会将其写入日志文件。

感谢帮助!