首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在google测试中读取spdlog输出

在Google测试中读取spdlog输出,可以通过以下步骤实现:

  1. 首先,确保你已经在项目中集成了spdlog库。可以通过在项目的CMakeLists.txt文件中添加spdlog的依赖来实现。例如:
代码语言:txt
复制
find_package(spdlog REQUIRED)
target_link_libraries(your_project_name PRIVATE spdlog::spdlog)
  1. 在你的测试文件中,包含spdlog的头文件,并使用SPDLOG_LOGGER_DEBUG宏定义来定义一个全局的spdlog日志记录器。例如:
代码语言:txt
复制
#include <gtest/gtest.h>
#include <spdlog/spdlog.h>

// 定义全局的spdlog日志记录器
SPDLOG_LOGGER_DEBUG(my_logger, "test_logger")
  1. 在你的测试用例中,使用spdlog::get函数获取到之前定义的全局日志记录器,并将其绑定到一个std::stringstream对象上。这样,你就可以通过读取std::stringstream对象的内容来获取spdlog的输出。例如:
代码语言:txt
复制
TEST(MyTest, ReadSpdlogOutput) {
  // 获取全局的spdlog日志记录器
  auto logger = spdlog::get("my_logger");

  // 创建一个std::stringstream对象
  std::stringstream ss;

  // 将spdlog的输出绑定到std::stringstream对象上
  logger->set_pattern("%v");
  logger->set_sink(std::make_shared<spdlog::sinks::ostream_sink_mt>(ss));

  // 执行你的测试代码,触发spdlog的输出

  // 读取std::stringstream对象的内容
  std::string output = ss.str();

  // 断言输出内容是否符合预期
  ASSERT_EQ(output, "expected_output");
}

在上述代码中,你可以根据需要自定义日志记录器的名称、日志格式以及预期的输出内容。另外,你还可以使用其他的spdlog日志记录器配置,如文件记录器、异步记录器等。

需要注意的是,以上代码示例中的expected_output是一个占位符,你需要将其替换为你期望从spdlog中读取到的实际输出内容。

此外,如果你想了解更多关于spdlog的详细信息,可以参考腾讯云提供的spdlog产品介绍链接地址:spdlog产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在父进程读取子(外部)进程的标准输出和标准错误输出结果

最近接手一个小项目,要求使用谷歌的aapt.exe获取apk软件包的信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程的输出结果,当时还研究了一番,只是没有做整理。...这个问题,从微软以为为我们考虑过了,我们可以从一个API可以找到一些端倪——CreateProcess。...这个API的参数非常多,我想我们工程对CreateProcess的调用可能就关注于程序路径(lpApplicationName),或者命令行(lpCommandLine)。...我们使用STARTF_USESTDHANDLES的原因是:我们使用了标准输出和标准错误输出句柄。...我想应该有人借用过网上相似的代码,但是却发现一个问题,就是读取出来的信息是不全的。这个问题的关键就在读取的方法上,其实没什么玄妙,只要控制好读取起始位置就行了。

3.9K10

【C++】开源:spdlog跨平台日志库配置使用

4.多线程支持:Spdlog 在设计上考虑到多线程环境下的安全性,可以在多个线程同时记录日志,而无需担心竞争条件。...6.支持不同的日志级别:Spdlog 提供了不同的日志级别( DEBUG、INFO、WARNING、ERROR 等),可以根据需求选择适当的级别进行日志记录,以帮助你更好地控制日志输出。...7.集成第三方库:Spdlog 可以与其他流行的 C++ 库和框架集成, fmtlib、Google Protocol Buffers (protobuf) 等。...return 0; } 设置两个logger,分别输出在终端和日志文件: #include #include #include "spdlog...= std::make_shared("file", fileSink); // 将控制台和文件日志记录器添加到复合日志记录器 spdlog::sinks_init_list

41010
  • 开源库推荐——spdlog

    强大的扩展性:SPDLOG支持多种输出目标,文件、控制台、网络等,同时还可以通过插件机制实现与其他系统的集成。...它提供了一系列的日志记录函数(debug()、info()、error()等),以及设置日志级别、格式化输出等功能。logger可以输出到多个sink(日志记录器),控制台、文件、syslog等。...它使用异步队列来缓冲日志消息,并通过后台线程将消息写入到指定的输出目标,以提高性能和响应速度。 3. spdlog内有多个种类的日志记录器,日志记录器负责将日志消息发送到指定的输出目标。...spdlog提供了多种内置的Sink,stdout_sink、rotating_file_sink等,以支持不同的日志输出方式。开发者也可以自定义Sink,以满足特定的日志记录需求。 4....异步日志记录线程池,负责从异步队列取出日志消息,并将其写入到指定的输出目标。它与async_logger配合工作,实现了异步的日志记录功能。。

    13210

    CMake基础

    CMake基础 一、什么是编译器 编译器,是一个根据源代码生成机器码的程序 g++ main.cpp -o a.out 该命令会调用编译器程序g++,让他读取main.cpp的字符串(称为源码),并根据...C++标准生成相应的机器指令码,输出到a.out这个文件,(称为可执行文件) ....“插桩”函数(汇编语言中的jump,指定跳转的位置),当可执行文件被加载时会读取指定目录的.dll文件,加载到内存中空闲的位置,并且替换相应的“插桩”指向的地址为加载后的地址,这个过程称为重定向,这样以后函数被调用就会跳转到动态加载的地址去...2.Neargye/magic_enum - 枚举类型的反射,枚举转字符串等(实现方式很巧妙) 3.g-truc/glm - 模仿 GLSL 语法的数学矢量/矩阵库(附带一些常用函数,随机数生成等).../googletest - 谷歌单元测试框架 8.google/benchmark - 谷歌性能评估框架 9.glfw/glfw - OpenGL 窗口和上下文管理 10.libigl/libigl -

    1.9K20

    Log:Spdlog初探(1)

    复制源文件文件夹到的你编译链 和 使用一个C++11编译器。 源文件地址:源文件地址 编译静态库 Linux版本 注意:本机需要安装好git,cmake。...此命令为安装到系统环境,使用时就不需要配置引用头文件目录,库目录。...根据自己需要配置 #Finish 配置 其他属性,主要是 输出目录(安装目录),样例,测试按照默认配置 #configure 等待输出 Generating install / Configuring...4.标准输出/控制台打印 标准输出 依赖于 头文件 “spdlog/sinks/stdout_color_sinks.h” 或者 #include “spdlog/sinks/stdout_sinks.h...主要想使用 backstrac/dump功能,结果不是预计,项目奔溃/出错,在日志最后打印错误堆栈信息。测试时还是使用系统信号测试使用。

    71830

    spdlog日志库的使用

    6、支持多线程日志输出 7、对日志进行设置,:日志大小、生成日志频率、系统日志、日志颜色设置 8、日志输出级别即时生效 9、各种日志目标:可对日志文件进行循环输出;可每日生成日志文件;支持控制台日志输出...::daily_logger_mt("daily_logger", "logs/daily.txt", 2, 30); } 2.5 日志回溯 调试日志可以暂时保存在内存,需要的时候可以通过接口对缓存的日志进行输出...{:s} - 在十六进制不要用空格分隔每个字节 {:p} - 不要在每行开始打印位置 {:n} - 不要将输出日志拆分为多行 {:a} - 如果没有设置:n,则显示ASCII码. 2.9 支持多种日志输出器...下面的代码支持两种,console日志将告警和错误输出到控制台,向文件输出所有日志级别。...+, cygwin) macOS(叮当声3.5 +) 日志模式的Androidflags 4 参考 链接: 1、https://github.com/gabime/spdlog

    2.9K10

    【系列教程】高性能服务设计思路

    引入步骤项目spdlog代码仓库git clone https://github.com/gabime/spdlog.git将spdlog/include/spdlog目录直接拷贝到CProxy项目的include...include,// 所以下面的写法最终会找到${PROJECT\_SOURCE\_DIR}/include/spdlog/spdlog.h#include "spdlog/spdlog.h"// 初始化日志格式...项目的命名规则大体是参考google的C++项目风格:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide.../文件名:全部小写,单词之间通过下划线连接,C++文件用.cpp结尾,头文件用.h结尾类型/结构体:每个单词首字母均大写,:MyExcitingClass变量名:全部小写, 单词之间用下划线连接;类的私有成员变量以下划线结尾函数名...:常规函数名每个单词首字母均大写,:AddTableEntry;对于类的私有方法,首字母小写。

    755120

    Log:Spdlog初探(1)

    复制源文件文件夹到的你编译链 和 使用一个C++11编译器。 源文件地址:源文件地址 编译静态库 Linux版本 注意:本机需要安装好git,cmake。...此命令为安装到系统环境,使用时就不需要配置引用头文件目录,库目录。...根据自己需要配置 #Finish 配置 其他属性,主要是 输出目录(安装目录),样例,测试按照默认配置 #configure 等待输出 Generating install / Configuring...4.标准输出/控制台打印 标准输出 依赖于 头文件 “spdlog/sinks/stdout_color_sinks.h” 或者 #include “spdlog/sinks/stdout_sinks.h...主要想使用 backstrac/dump功能,结果不是预计,项目奔溃/出错,在日志最后打印错误堆栈信息。测试时还是使用系统信号测试使用。

    96830

    day04 高性能服务设计思路

    引入步骤 项目spdlog代码仓库 git clone https://github.com/gabime/spdlog.git 将spdlog/include/spdlog目录直接拷贝到CProxy...include, // 所以下面的写法最终会找到${PROJECT_SOURCE_DIR}/include/spdlog/spdlog.h #include "spdlog/spdlog.h" // 初始化日志格式...项目的命名规则大体是参考google的C++项目风格:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide.../ 文件名:全部小写,单词之间通过下划线连接,C++文件用.cpp结尾,头文件用.h结尾 类型/结构体:每个单词首字母均大写,:MyExcitingClass 变量名:全部小写, 单词之间用下划线连接...;类的私有成员变量以下划线结尾 函数名:常规函数名每个单词首字母均大写,:AddTableEntry;对于类的私有方法,首字母小写。

    32140

    spdLog的使用

    以下为收集到或者个人测试的内容,侵权删 一.优点 只包含头文件 (spdlog/spdlog.h —> spdlog , spdlog/fmt/bundled/format.h —> pattern_formatter...) 无需依赖第三方库 支持跨平台 – Linux / Windows on 32/64 bits 可每日生成日志文件 daily_file_sink 每天定时产生文件日志 支持控制台日志输出 可选的异步日志...支持日志输出级别 可自定义日志格式 二.基本使用 1.直接打印日志到console auto console1 = spd::stdout_logger_mt("console1"); console1...rotating_logger->info("{} * {} equals {:>10}", i, i, i*i); 4.flush_on命令 //遇到错误及以上级别会立马将缓存的buffer写到文件,...类的两个关键log函数: template class base_sink:public sink { void log(const details::log_msg

    1.8K21

    CC++log日志库比较

    尝试了几种C/C++ log库,简单记录如下:  log4j的衍生品  日志是应用软件不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录,他有很多移植版(包括官方的和非官方的版本...log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序调试、运行、测试、和维护等全生命周期; 你可以选择将信息输出到屏幕、文件、  NT event log、甚至是远程服务器...google glog  Google glog是一个基于程序级记录日志信息的c++库,编程使用方式与c++的stream操作类似,例:   LOG(INFO) << “Found ” << num_cookies...  spdlog 是一个快速的 C++ 日志库,只包含头文件,兼容  C++11。 ...  c-log  c-log是一个稳定,高效,多线程安全,易用,简单的C/C++ 日志库,在github主页上有丰富的测试case,后续将会推迟直接输出到scribe等集中式日志收集中间件上,帮助用户更好的收集

    8.7K10

    桌面应用开发:Go 语言和 Web 技术的融合创新 | 开源日报 No.46

    对于引用变量,推荐使用 const 而不是 var 来声明,并且只在必要情况下使用 let 使用字面语法创建对象 在数组添加元素时,建议使用 Array#push 代替直接赋值 推荐将箭头函数体放在隐式返回表达式之前并换行显示以增加可读性...gabime/spdlog[3] Stars: 20.1k License: NOASSERTION spdlog 是一个非常快速的 C++日志库,可以作为头文件使用或者编译成静态库。...它具有以下特点和优势: 非常快速 支持丰富的格式化功能,使用了出色的 fmt 库 可以选择异步模式 自定义格式化方式 多线程/单线程记录器支持 各种不同类型的日志目标:滚动日志文件、每天生成新的日志文件、控制台输出...为广大读者提供了许多知名权威出版物上精选而来的文章资源; 涵盖了各类领域 (经济学、时事评论) 与不同周期 (周刊或月刊) 内发布的重要信息; 相关链接 [1] TheAlgorithms/Python...: https://github.com/gabime/spdlog [4] dotnet/maui: https://github.com/dotnet/maui [5] wailsapp/wails

    28720

    (转载非原创)从新建文件夹开始构建UtopiaEngine(2)

    { // 把渲染以及每帧消息处理相关代码放在这里 // 鉴于目前并没有开始渲染框架的构建,循环条件暂时以true代替,各位也可以随便编写一些条件测试一下...,分别对应不同的提示颜色,你可以增加类型并自定义颜色,而且你甚至可以不仅让日志输出在控制台上,你也可以让它输出在任何你想要的界面上,不过鉴于本人技术力太过生草以及本引擎的体量,使用默认的设置就足以完成我们的需求...VS的解决方案,而VS的项目的概念对应的是我们引擎项目中引擎模块的概念。...\spdlog.h> #include "LogLibDefine.h" // 设置两个宏定义来指定我要使用的日志输出类型,分为引擎日志和应用程序日志两部分 // 引擎日志主要用在编辑器以及其他的开发环境...类型是整型,用来存放我在上面的宏定义的,程序会根据宏定义的指定来选择日志输出方,即是引擎还是应用程序 // 2.

    85500
    领券