spdlog日志安装与使用

2023-11-15

spdlog是一个开源的且只需要头文件即可使用的跨平台日志库,适用于c++11版本。

1.安装步骤

# 1.源码下载
git clone https://github.com/gabime/spdlog
# 2.拷贝头文件
cp -rf spdlog/include/spdlog /usr/include/

2.使用举例

测试代码如下:

#include <iostream>
#include <memory>
#include <string>
#include "spdlog/spdlog.h"
#include "spdlog/sinks/daily_file_sink.h"
using namespace std;

/*
 * 日志级别
 * trace 0
 * debug 1
 * info 2
 * warn 3
 * error 4
 * critical 5
 */
int main()
{
    // 创建文件名类似于: daily_log_2020_05-28.txt,如果程序不退出的话,就是每天2:30 am创建新的文件
    auto logger = spdlog::daily_logger_mt("spdlog", "daily_log.txt", 2, 20);
    // 设置日志级别,默认是info
    spdlog::set_level(spdlog::level::trace);
    // 写入log文件
    string s="success";
    logger->info("test s ={}",s);            //{}可以表示变量,跟printf的语法类似
    logger->trace("this is trace log");
    logger->debug("this is debug log");
    logger->info("this is info log");
    logger->warn("this is warning log");
    logger->error("this is a error log");   
    logger->critical("this is critical log");
    cout << "success" << endl;               //控制台输出
    return 0;
}

编译测试结果如下:

[root@centos7 spdlog_test]# g++ -std=c++11 -g log_test.cpp -o log_test
[root@centos7 spdlog_test]# ./log_test
success
[root@centos7 spdlog_test]# cat daily_log_2023-01-14.txt
[2023-01-14 19:34:44.418] [spdlog] [info] test s =success
[2023-01-14 19:34:44.418] [spdlog] [trace] this is trace log
[2023-01-14 19:34:44.418] [spdlog] [debug] this is debug log
[2023-01-14 19:34:44.418] [spdlog] [info] this is info log
[2023-01-14 19:34:44.418] [spdlog] [warning] this is warning log
[2023-01-14 19:34:44.418] [spdlog] [error] this is a error log
[2023-01-14 19:34:44.418] [spdlog] [critical] this is critical log
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spdlog日志安装与使用 的相关文章

随机推荐

  • Unable to install breakpoint in XXX due to missing line number attributes.

    今天调试程序的时候 eclipse 弹出来一个 Unable to install breakpointdue to missingline number attributes Modify compileroptions togenera
  • 01.神经网络和深度学习——week2 神经网络基础(编程作业)

    Part 1 Python Basics with Numpy optional 1 Building basic functions with numpy 1 1 Sigmoid function np exp exe Build a f
  • Unity游戏开发客户端面经——C#(初级)

    前言 记录了总6w字的面经知识点 文章中的知识点若想深入了解 可以点击链接学习 由于文本太多 按类型分开 这一篇是C 常问问题总结 有帮助的可以收藏 1 引用类型 值类型 1 1 介绍 值类型 int bool float char str
  • 持续集成管理软件Jenkins应用实验

    编写Dockerfile文件 1 创建一个目录jenkins 保存相关的配置信息和内容 在 后输入mkdir Jenkins cd Jenkins命令 然后按Enter键 创建Jenkins目录并进入该目录 示例代码如下 root xian
  • UML建模与软件开发设计(七)——时序图设计

    在前面我们学习了类图相关知识 类图是一种静态结构模型视图 它是设计类及类间关系 即数据结构 的重要依据 但它无法刻画类的对象间的交互 通信行为 也就是说 类图无法描述类和类之间是如何通信 交互的 通俗地说 类图无法描述某个类的方法被哪个类所
  • OnTriggerEnter

    准备一个脚本 shiyan cs 脚本内容如下 脚本挂在小球上 然后运行场景 拖动小球撞盒子 然后再拖动盒子撞小球 分别看控制台打印结果 然后将脚本挂在盒子上 然后运行场景 拖动小球撞盒子 然后再拖动盒子撞小球 分别看控制台打印结果 OnT
  • 写一个Java程序,在程序中建立一个窗口

    编写一个Java程序 在程序中建立一个窗口 有四个文本框 两个按钮 单击 求和 按钮 能把第一个和第二个文本框的整数相加后结果显示在第三个文本框中 点击 复制 按钮 能将第三个文本框的内容复制到第四个文本框中 最后还可以正常关闭窗口 要创建
  • 后台管理系统----品牌管理

    目录 路由的搭建 品牌管理静态组件 品牌管理列表展示 element ui table表单组件 element ui el pagination分页器组件 插槽 网络请求 增删改牌静态页面 增删改品牌功能 书写api 增删改逻辑 表单校验
  • supervisor系列:4、子进程

    supervisor系列 4 子进程 文章目录 supervisor系列 4 子进程 1 非后台运行的子进程 1 1 程序配置示例 1 1 1 Apache 2 2 6 1 1 2 Two Zope 2 X instances and on
  • Windows命令行创建文件,文件夹,删除文件,文件夹命令

    创建文件夹命令 md 文件夹名字或者mkdir 文件夹名字 删除文件夹命令 rd删除空文件夹 rd s q 删除有子文件夹和子文件的文件夹 创建文件命令 type nul gt 可以带文件名 也可以不带文件名 这里用于空文件 echo 文件
  • mysql 常用函数

    一 mysql的函数 1 1 limit分页函数的使用 第一个起始的个数从0开始 第二个查询的个数 SELECT FROM student LIMIT 4 5 SELECT FROM student LIMIT 5 1 2 聚合函数 AVG
  • 【Linux】如何在进程间加锁(实现互斥)

    文章目录 前言 mmap 配合 pthread mutex t 先让多个进程能够看到一个num 多个进程互斥访问 具体代码 采用共享内存配合信号量 semget semctl semop 核心逻辑 管道 总结 前言 Linux 初识进程间通
  • python求一个整数的最大公约数_算法交流:7592 求最大公约数问题【2.1基本算法之递归和自调用函数】...

    题目描述 7592 求最大公约数问题 By OIer15WA给定两个正整数 求它们的最大公约数 输入输入一行 包含两个正整数 lt 1000000000 输出输出一个正整数 即这两个正整数的最大公约数 样例输入 6 9 样例输出 3 一 题
  • 《银河麒麟高级服务器操作系统V10》使用

    一言而论 讲了麒麟服务器V10的基本使用 包括终端 VNC 文章目录 前言 基本架构 环境 硬件环境 软件环境 麒麟安装步骤 1 在宿主机上安装好VM 并且激活 2 使用VM创建虚拟机 3 启动虚拟机 终端常用点 VNC的使用 麒麟上安装V
  • 关于MeasureSpec的一些理解

    MeasureSpec有以下三种模式 public static final int UNSPECIFIED 0 lt lt MODE SHIFT public static final int EXACTLY 1 lt lt MODE S
  • Qt编程(二)-初步进阶

    Qt编程 初步进阶 前言 一 Qt自定义信号和槽 1 自定义信号和槽 2 自定义信号带参数重载问题 3 函数重载问题总结 4 信号和槽的扩展 1 信号连接 connect 2 信号的断开 disconnect 3 信号和槽的参数 二 Lam
  • LetCode#1给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。JAVA

    题目 给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出 和为目标值 的那 两个 整数 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素在答案里不能重复出现 你可以按任意顺序返回答
  • Vue-cli快速创建vue项目

    使用vue cli需要的环境 nodejs 一 什么是vue cli 还记得最初使用webpack搭建项目的痛苦了吗 各种配置 去配置我们的各种loader 插件 项目运行脚本 非常难受 今天我们就学习vue cli 这个东西 再无webp
  • 直接替换Springboot jar包中的文件

    Linux Springboot 在不重新打包的情况下 修改配置文件 直接vim xxx jar包后 可以通过 关键字来查找文件 查找到以后 通过方向键进行控制 enter进入文件 i进入插入模式 修改文件 保存等操作和vim的操作一样 修
  • spdlog日志安装与使用

    spdlog是一个开源的且只需要头文件即可使用的跨平台日志库 适用于c 11版本 1 安装步骤 1 源码下载 git clone https github com gabime spdlog 2 拷贝头文件 cp rf spdlog inc