我在使用spdlog在Visual Studio项目中进行日志记录。我在Qt Creator中使用了相同的项目,因此spdlog日志记录不输出任何内容。但是std::cout仍然可以工作并打印到Qt创建者的应用程序输出窗口。

std::vector<spdlog::sink_ptr> sinks;
sinks.push_back(std::make_shared<spdlog::sinks::stdout_color_sink_mt>());
sinks.push_back(std::make_shared<spdlog::sinks::basic_file_sink_mt>("multisink.txt", true));
auto appLogger = std::make_shared<spdlog::logger>("appLogger", begin(sinks), end(sinks));
appLogger->set_level(spdlog::level::debug);
spdlog::register_logger(appLogger);
spdlog::flush_on(spdlog::level::debug);
appLogger->warn("this should appear in both console and file");

最佳答案

是的,应用程序输出不输出spdlog。但是,我设法按照以下步骤输出到终端。

  • 转到“项目”,然后选择“运行所选工具包的配置
  • 在运行设置中,选中“在终端中运行”选项
  • 接下来,在Project pro文件
  • 中将控制台添加到CONFIG中
  • 清洁项目
  • 构建并运行。

  • 如果这些步骤没有帮助,则可以删除整个构建目录,然后再次运行这些步骤。

    10-07 12:30