问题标签 [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 回答
876 浏览

c++ - 如何使用 spdlog 打印 std::map

得到错误:由于要求'formattable'而导致static_assert失败“无法格式化参数。要使type T formattable提供格式化程序专业化:https ://fmt.dev/latest/api.html#formatting-user-defined-types ”

0 投票
1 回答
199 浏览

c++ - 指针宏不起作用

我正在为正在构建的引擎制作日志系统,但遇到了问题。我为我的引擎设置了许多宏,但不幸的是,它们似乎不起作用。这是我的代码:Log.cpp

日志.h

和core.h

当我调用任何宏时,visual studio 说左边 ->必须指向一个数据类型。有谁知道这是为什么刹车

0 投票
0 回答
713 浏览

c++ - 你如何设置spdlog?

我为 spdlog 添加了一个 git-submodule,当我尝试像这样包含它时:#include "spdlog/include/spdlog/spdlog.h"我收到错误:spdlog/include/spdlog/spdlog.h:12:10: fatal error: spdlog/common.h: No such file or directory #include <spdlog/common.h>. 我应该在使用这个库之前运行任何命令吗?

0 投票
1 回答
2336 浏览

c++ - 无法从 spdlog 中格式化参数

我正在尝试使用spdlog. 我将它与我的代码合并,但现在我收到以下错误:

...这是错误消息的结尾。它永远不会到达我的代码,所以我不知道在哪里看。任何想法可能是什么原因?

spdlog 是 1.6.1 版。最后一个错误行来自这里:

在我看来并没有什么特别的错误。


更新:在注释掉所有spdlog调用的一些尝试和错误之后,我将其缩小到:

spdlog::info("Foo{}", Point{1, 2});

Point我自己的命名空间中我自己的类在哪里。我确实为它提供了一种打印自己的方法:

0 投票
1 回答
711 浏览

c++ - 难以创建 Spdlog 异步文件记录器

我正在尝试为我的应用程序制作一个不在主线程中运行的记录器。我在 spdlog 周围使用了一个包装类 Logger。该类有一个类型的私有静态数据成员,该成员std::shared_ptr<spdlog::logger>在 init() 函数中初始化。我能够成功创建一个spdlog::sinks::basic_file_sink_mt但是当我尝试使用spd::async_factory它时不会编译。

记录器.h

记录器.cpp

这个解决方案似乎有效。它记录到文件中,但问题是它在主线程中。我尝试通过将行更改为如下方式将记录器更新为std::make_shared<spdlog::sinks::basic_file_sink_mt>异步std::make_shared<spdlog::sinks::basic_file_sink_mt<spdlog::async_factory>>

当我尝试这个时,我得到编译错误。我该怎么做才能将我的成员变量设置为异步记录器?

感谢您阅读所有这些内容,并感谢您的帮助。

0 投票
0 回答
315 浏览

c++ - 通过 spdlog 使用几个可配置的记录器

我在 C++ 应用程序中使用 spdlog,我在其中创建了一个构建日志池的类,池中的变量内容并不总是相同,因为它是在传递参数指示的函数内部完成的如果您只想在控制台中记录日志,仅在一个文件中或同时在两个文件中。

换句话说,池可以包括控制台的记录器和文件的记录器或两者中的一个。

选项 1:我尝试使用此代码获得此功能,但它无法编译,并且显示错误,指出它不支持 push_back 功能:

选项 2:此代码编译并工作:

但是,我想在“if ... else if ...”之外定义 loggerList 并使用类似于 push_back 或 instert 的一些函数来将必要的记录器添加到列表中,类似于选项 1 中所做的。

spdlog 中是否有一个函数允许将记录器添加到空的 loggerList 列表中,而不是在 loggerList 的声明中创建和填充列表?

0 投票
1 回答
2136 浏览

c++ - spdlog 仅标头,带有外部 fmt。spdlog 错误:“内部”:不是“fmt”的成员

我使用仅标头 spdlog 作为 cmake 的外部项目。

为了将外部 fmt 库链接到 spdlog,添加了以下内容。

它在这种状态下执行。但是如果我添加以下代码以使用外部 fmt,则会发生编译错误。

错误信息如下。

我认为需要安装 spdlog 才能使用外部 fmt,而不是捆绑包,但我没有这样做。当我使用“ExternalProject_Add”安装 spdlog 时,我想我需要做一些额外的事情,但我不知道它是什么。

我在 spdlog/CMakeLists.txt 中找到了一个似乎与此相关的选项

我尝试了以下方法将“SPDLOG_FMT_EXTERNAL”更改为“ON”,但问题仍然存在。我不确定这是否是正确的方法和合适的解决方案。谢谢。

0 投票
1 回答
290 浏览

c++ - 使用 add-subdirectory 访问外部项目导致与导出集相关的 CMake 错误

我有一个依赖于 spdlog 的项目 A。这是结构:

我正在尝试通过添加子目录来访问项目 A 中的 spdlog。这是我的A/CMakeLists.txt样子:

这是我的A/src/CMakeLists.txt样子:

当我尝试构建它时,我收到以下错误:

请你能建议我如何解决它吗?

出于某种原因,我需要维护上面显示的相同目录结构。这是一个相关的问题,但没有答案:这里

0 投票
0 回答
372 浏览

c++ - spdlog 问题:有没有办法不输出时间戳?

我的用例是只使用 spdlog 作为我的序列化库。例如。我想输出 json 数据,但时间戳与 json 一起使其成为无效的 json 语法。当然我可以稍后以编程方式删除时间戳,但我想知道 SPDLOG 是否提供跳过时间戳的方法。

0 投票
2 回答
3179 浏览

c++ - 如何使用 spdlog

我是 C++ 新手,请不要烤太多。我正在尝试在 C++ 程序中使用 spdlog 并使用 Jetbrains 的 CLion。

这是我的截图,但不知道我做错了什么。请告知我做错了什么。

这是我的 main.cpp

这是我的 CMakeList.txt

在此处输入图像描述

谢谢