简介 spdlog 的下载 编译 和 应用

项目的github网址:
https://github.com/gabime/spdlog


下载、编译源码:
$ git clone https://github.com/gabime/spdlog.git
$ cd spdlog && mkdir build && cd build
$ cmake ..  && make -j16
$ ls
发现有 libspdlog.a 

红色字的操作可以加快应用程序编译速度,但是不此处不make也不影响使用。

应用:

在任意开发练习目录中创建源文件  helloSpdlog.cc,文件内容如下:

//helloSpdlog.cc
#include "spdlog/spdlog.h"

int main() 
{
    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");
    
    // Compile time log levels
    // define SPDLOG_ACTIVE_LEVEL to desired level
    SPDLOG_TRACE("Some trace message with param {}", 42);
    SPDLOG_DEBUG("Some debug message");
}

在开发目录中编译:

$ g++ helloSpdlog.cc -o helloSpdlog  -std=c++11 -I /home/xiaoming/github/spdlog/include  -lspdlog

或者加上 -L选项:
$ g++ helloSpdlog.cc -o helloSpdlog  -std=c++11 -I /home/xiaoming/github/spdlog/include -L /home/xiaoming/github/spd -lspdlog

运行程序:
$ ./helloSpdlog
输出如下内容:

[2022-02-14 13:49:37.300] [info] Welcome to spdlog!
[2022-02-14 13:49:37.300] [error] Some error message with arg: 1
[2022-02-14 13:49:37.300] [warning] Easy padding in numbers like 00000012
[2022-02-14 13:49:37.300] [critical] Support for int: 42;  hex: 2a;  oct: 52; bin: 101010
[2022-02-14 13:49:37.300] [info] Support for floats 1.23
[2022-02-14 13:49:37.300] [info] Positional args are supported too..
[2022-02-14 13:49:37.300] [info] left aligned
[2022-02-14 13:49:37.300] [debug] This message should be displayed..

关于 spdlog 输出格式控制:

1. QuickStart · gabime/spdlog Wiki · GitHub

GitHub - fmtlib/fmt: A modern formatting library

Format String Syntax — fmt 8.1.1 documentation

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
spdlog是一个C++的快速日志库,它具有非常高的性能和灵活性,但是在编译过程中可能会遇到较慢的情况。 首先,编译速度慢可能是由于spdlog源代码的规模较大导致的。spdlog库实现了多种日志记录器,支持多种日志格式和输出方式,因此其源代码比较庞大。在编译时,需要将所有相关代码进行预编译、优化和链接,这个过程可能比较耗时。 其次,spdlog库在编译过程中可能使用了一些较复杂的C++特性或者依赖其他库,这些都可能增加编译时间。例如,spdlog的一些特性可能需要使用模板、多态或者元编程等高级C++特性,这些特性在编译时需要进行多次实例化和编译,从而增加了编译时间。另外,spdlog也可能依赖其他库,例如boost等,这些库的编译也会影响到spdlog编译性能。 针对spdlog编译慢的问题,可以采取以下措施来优化编译速度: 1. 使用预编译头文件(PCH):可以将一些通用的头文件预先编译,并在编译过程中引入,从而减少代码的重复编译。 2. 分开编译:对于较大的项目,可以考虑将spdlog的源代码与其他代码分开编译,从而缩小编译范围,减少编译时间。 3. 编译优化选项:可以使用一些编译优化选项,如-O2或者-O3,来提高编译速度和执行效率。 4. 移除不必要的特性或者依赖:如果项目中并未使用spdlog的所有特性或者依赖的其他库,并且对编译速度有着较高的要求,可以考虑移除不必要的特性或者依赖,从而减少编译时间。 总之,虽然spdlog编译可能较慢,但其高性能和灵活性使其成为C++开发中一个值得考虑的日志库。通过合理的优化编译配置和编译选项,可以在保证性能的前提下,提高编译速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值