问题标签 [spdlog]

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 投票
1 回答
278 浏览

yocto - 向 yocto rootfs 添加一个库

我正在使用这个配方,默认情况下它不会复制生成的 .a lib(我认为它只需要使用标头)

我正在尝试将生成的 libspdlog.a 放入我的 sysroot 中,但我似乎无法做到这一点。我将配方复制到我的层(无论如何都必须这样做,因为我的项目引用了旧版本的 meta-oe)

到目前为止,我已经尝试过:

我很确定 do_install 没有被调用。我必须添加到我的 IMAGE_INSTALL spd-dev 所以也许这与它有关

谢谢

0 投票
1 回答
366 浏览

c++ - 我不能在循环中使用 spdlog 记录器

我想通过循环创建日志。这是一个简单的例子:

这是logging.hpp文件内容:

它编译没有问题,但是当我运行带有多个参数的程序时,它会发生错误:

0 投票
1 回答
118 浏览

c++ - 在自定义反向向量迭代器中看不到第一个元素

前几天我想尝试为向量编写自己的迭代器,当然,这是最原始的例子,因为 c++ 标准中有很多令人困惑的代码。因此,正向向量的常用迭代器工作正常,但反向迭代器存在问题。我将它完全建立在基本迭代器上,只是我专门为反向迭代器更改/反转了运算符。

从 Vector 访问迭代器:

问题本身在于,当我尝试以相反的方向遍历所有元素时VectorRevIterator。当试图将所有这些输出到控制台时,它似乎将一个元素向前移动并且看不到/无法读取第一个元素的字符。但是然后输出所有元素,只有没有最后一个。

这里有一个例子:

如何解决这个问题?要制作反向迭代器,只需还原运算符++ -- += -=rBegin rEnd函数。或者也许我忘记了什么?

0 投票
1 回答
281 浏览

c++ - 您如何参考柯南索引中的特定配方修订?

我需要参考spdlog 1.7.0 修订版 1eebff2f51d90cb700b63c6d2449ebcb,而不是最新修订版,但我似乎不能这样做。指定修订版需要user/channel#REV syntax,但柯南索引上的食谱似乎没有 user/channel

如何引用柯南索引中的特定版本?

0 投票
1 回答
37 浏览

glog - 将 Google Logger 打印格式(即 <<)转换为 spdlog 打印格式的宏扩展

我有大量使用 Google Logger 样式的日志打印的代码: LOG(ERROR) << "AAAA" <<< 123;

目前我需要用 spdlog logger 替换 Google logger,它支持类似 python 的格式: logger->error("{} {}", "param1", 123);

当然,我不想更改代码中的每个日志行。我想要做的是重写LOG(severity)宏定义。原来的宏实现是: #define LOG(severity) COMPACT_GOOGLE_LOG_ ## severity.stream()

你能推荐我如何实现宏吗?我的想法是传递给 LOG(ERROR) 的原始参数(即<< "AAAA" <<< 123)应该打印到字符串缓冲区,字符串缓冲区将打印到目标 spdlog 记录器实例,如下所示:logger->error("{}", str_buffer.c_str());

这样做的最佳主意是什么?非常感谢!!!

0 投票
1 回答
588 浏览

c++ - 如何在谷歌测试中读取 spdlog 输出

我正在进行 spdlog 的最新提交(关于 std 输出的问题,显然已解决),并且正在将我的输出从 std::cout 切换到 spdlog。

我的谷歌测试重定向 std::cout 所以我可以检查存根函数的输出:

然后在测试中使用如下;

doSomethingThatWritesToStdOut当我将内容更改为时,这不起作用

spdlog::get("console")->debug("Some output string\n");

teststr值为空..如果我执行以下操作

然后我可以在 teststr 中看到“一些输出字符串”的一个实例。如何捕获此记录器的输出(或更改记录器),以便在谷歌测试中进行测试?

0 投票
1 回答
421 浏览

c++ - 从 qt 的 qtextedit 对象中的 spdlog 获取日志

我正在尝试在 qtextedit 窗口中重定向我的日志。我使用这篇文章:Redirecting std::cout from DLL in a separate thread to QTextEdit

这是我的测试程序:

q_debugstream.h

主窗口.h

主窗口.cpp

主文件

我的问题:来自 SPDLOG_INFO 的日志出现在我的控制台中,但不在我的 qtextedit 窗口中。显然,来自 spdlog 的日志不会被 qInstallMessageHandler 的函数 QMessageOutput 捕获。

我的问题:是否可以从 qtextedit 框上的 spdlog 捕获日志?

0 投票
0 回答
118 浏览

c++ - spdlog 无法在 23:59 小时创建dailylog

我正在尝试使用 spdlog 在 23:59 生成每日日志。日志条目发生在单独线程 (TimerThread) 上的互斥锁内。在 23:58 或 23:59,日志文件按预期停止条目,但直到凌晨 4:27-4:30 才创建新的日志文件。我的系统时区设置为 UTC。似乎启动 TimerThread 的线程也被锁定了。请参阅附件代码。我究竟做错了什么?这是我使用的 TimerThread 代码:https ://codereview.stackexchange.com/questions/127552/portable-periodic-one-shot-timer-thread-follow-up 。为了测试 TimerThread 是否对锁定做了一些有趣的事情,我有一些代码来测试带有旋转文件接收器的计时器线程,即使在 23:59 时钟时间之后它也会继续运行而没有任何问题。

  • 操作系统:Ubuntu 20.04
  • 编译器 GCC 9.3.0
  • CXX_STANDARD 设置为 C++14
0 投票
0 回答
212 浏览

visual-c++ - 在 c++ 项目中使用 spdlog

在对代码进行一些操作后,我得到了链接错误:

在谷歌搜索时,我发现这可能与fmt图书馆有关。我没有直接fmt在我的项目中使用,但它可能被spdlog. 如何了解什么系统正在搜索并且无法链接?如何解决这个问题呢?

0 投票
1 回答
114 浏览

c++ - gcc arm 错误:'::fileno' 尚未声明

我正在尝试让 spdlog 用于我的嵌入式项目。(是的,我知道 spdlog 不是为嵌入式项目设计的,但我想试一试;))

我已经设法将 c++ std::thread、std::mutex 等转发到适当的 FreeRTOS 对象。所以这不再是问题了。

实际代码非常简单。数据应写入日志文件。实际的文件写入应通过嵌入式 FATFS 库完成

但是,这会导致编译器错误

现在我已经有了系统调用的包装器

为什么我仍然收到错误?我必须添加吗

等到链接器标志?

你能帮帮我吗?