C++日志库-spdLog

一、基本使用

0、描述

spd就是speed的缩写,代表速度,主要是由c++11写的。

支持异步回滚、单日记录、格式化等等;

不需要链接库或动态库,直接源码使用;

可创建多个不同的日志器;

1、在官网下载源码

https://github.com/gabime/spdlog

2、解压

C++日志库-spdLog

include文件夹就是需要的源码

3、将源码放在工程里

C++日志库-spdLog

4、例子:异步文件回滚日志

#include "spdlog/spdlog.h"
#include "spdlog/async.h"
#include "spdlog/sinks/rotating_file_sink.h"
int main(int, char *[])
{
   //异步就一定需要线程或线程池+日志队列,这里给一个线程,队列10000个字节
    spdlog::init_thread_pool(10000, 1);    //创建一个回滚日志,这里使用了工厂,类型是异步工厂,参数:日志名称、路径、文件大小、文件个数      
    auto file_logger = spdlog::rotating_logger_mt<spdlog::async_factory>("file_logger", "logs/basic-log.txt", 1024 * 1024 * 5, 10);
    int i = 0;    //需要输出日志的等级
    file_logger->set_level(spdlog::level::debug);
    while (i < 1000000)
    {
        file_logger->debug("Async message #{}", i);
        i++;
    }    //回收
    spdlog::drop_all();

    return 0;
}

C++日志库-spdLog

数字越小日志越新!

5、获取某个日志器

spdlog::get("file_logger")->info("loggers can be retrieved from a global");

6、手动刷新

logger->flush()

PS:

1、参考:

官方wiki:https://github.com/gabime/spdlog/wiki/1.-QuickStart

https://www.cnblogs.com/fishily/p/14431499.html

https://blog.csdn.net/kai15058157346/article/details/113079579

二、编译静态库

1、下载解压源码并在源码根目录下新建build文件夹

C++日志库-spdLog

2、打开CMake Gui,并进行相关设置

C++日志库-spdLog

C++日志库-spdLog

注意:本人使用了VS2015编译失败,VS2017成功

3、生成解决方案

C++日志库-spdLog

4、打开VS2017,打开sln

5、生成spdlog项目

C++日志库-spdLog

注意可以选择Debug和Release,各自生成,在build/Debug和build/Release下各自生成了lib静态库

6、新建lib文件夹,放入两个lib

7、手动将源码include文件夹拷贝出来,lib放在同一文件夹里,完成

C++日志库-spdLog

PS:

1、格式设置

https://blog.csdn.net/shizheng163/article/details/79418190
原文链接: https://www.cnblogs.com/judes/p/16028198.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/188285

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午2:08
下一篇 2023年2月12日 下午2:08

相关推荐