C++日志工具spdlog接入与使用

简介

- - -说明- - -

最近开发一个windows弱网工具,打算接入一个日志工具,果断github找一波,发现了spdlog,用了一下,简单易用,分享给大家。

- - -下载- - -

github 地址: https://github.com/gabime/spdlog

- - -特点- - -

个人使用,主要还是方便高效,功能齐全。经过个人使用,确实满足要求。

  1. 快速高效
  2. 接入方便
  3. 支持异步
  4. 控制台,系统,文件,Android日志支持
  5. 支持自定义格式
  6. 易扩展

接入

我这里使用最简单的方式接入
1. git clone https://github.com/gabime/spdlog.git 下载源码
2. 下载后目录如下:
在这里插入图片描述
3. 将spdlog目录拷贝到项目的include文件夹中:
在这里插入图片描述
4. 在项目属性中,配置include目录:在这里插入图片描述
5. 之后就可以在项目中自由使用了。

使用

  1. 声明:
#include "spdlog/spdlog.h"
using namespace spdlog;
  1. 测试使用使用官方例子,结果与代码如下:

    spdlog::info("Welcome to spdlog!");
    spdlog::error("Some error message with arg: {}", 1);
    
    spdlog::warn("Easy padding in numbers like {:08d}", 12);
    spdlog::critical("Support for int: {0:d};  hex: {0:x};  oct: {0:o}; bin: {0:b}", 42);
    spdlog::info("Support for floats {:03.2f}", 1.23456);
    spdlog::info("Positional args are {1} {0}..", "too", "supported");
    spdlog::info("{:<30}", "left aligned");
    
    spdlog::set_level(spdlog::level::debug); // Set global log level to debug
    spdlog::debug("This message should be displayed..");    
    
    // change log pattern
    spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v");

在这里插入图片描述
3. 输出到文件测试:

		//set_level(spdlog::level::debug);
		flush_on(spdlog::level::err);//打印error的时候强制同步日志到文件
		flush_every(std::chrono::seconds(3));//每3s 同步日志到文件

		auto logger = spdlog::basic_logger_mt("logger", "logs/logtest.txt");
		for (int i = 0; i < 10; i++)
		{
			logger->debug("test log {}", i);
			logger->info("test log {}", i);
			logger->warn("test log {}", i);
			//Sleep(30);
		}
		logger->debug("333333");

结果:
在这里插入图片描述
输入路径默认相对于项目,有心的朋友会发现,这里debug的日志没打出来,因为//set_level(spdlog::level::debug);这一句被注释掉了,这里是设置打印的等级,默认是info,下图取自common.h,可以看到枚举的值:
common.h
当我们设置set_level为debug的时候,才会打开debug以及以上的日志,这点对于我们调试很重要。

结论

其实官方还有一些异步的用法,多种日志使用方式,大家可以自行到git上有文档可以学习,我这里暂时没用到。就不讲了。但是总的来说,过程很简单,使用很便捷是我最大的感受。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C++spdlog是一个快速、易于使用日志记录库。它提供了多种日志记录模式,支持多线程,具有灵活的格式化选项,并且在性能上表现出色。你可以使用spdlog来记录应用程序的各种事件、错误和调试信息。 要使用spdlog,首先你需要在你的C++项目包含spdlog文件,并将spdlog库链接到你的项目。你可以通过下载spdlog的源代码并手动添加到你的项目,或者使用包管理工具(如vcpkg)来安装spdlog。 下面是一个简单的示例,展示了如何在C++使用spdlog进行日志记录: ```cpp #include <spdlog/spdlog.h> int main() { // 创建一个名为"my_logger"的日志记录器 auto logger = spdlog::stdout_logger_mt("my_logger"); // 设置日志记录级别为调试 spdlog::set_level(spdlog::level::debug); // 记录不同级别的日志信息 logger->info("This is an info message"); logger->warn("This is a warning message"); logger->error("This is an error message"); return 0; } ``` 在上面的示例,我们创建了一个名为"my_logger"的日志记录器,并将其输出到控制台(stdout)。然后,我们设置日志记录级别为调试(debug),这意味着所有调试级别及更高级别的日志消息都会被记录。 最后,我们使用logger对象记录了一些不同级别的日志消息。日志消息的格式可以根据你的需要进行自定义。 这只是一个简单的示例,你可以根据你的具体需求使用spdlog进行更复杂的日志记录。你可以查看spdlog的文档以获取更多详细信息和示例:https://github.com/gabime/spdlog
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值