Spdlog安装及使用(包含Cmake安装教程)


第一步:

参考下面教程进行spdlog安装(如果没有安装cmake,需要先安装cmake)

spdlog安装教程https://blog.csdn.net/xmcy001122/article/details/105864473/

cmake安装教程https://www.cnblogs.com/yanqingyang/p/12731855.html

第二步:

1.工程加入include及lib路径, 并且 lib中加入spdlog

include路径: /root/spdlog/include

lib路径:/root/spdlog/build

2.加入头文件logger.h

#ifndef LOGGER_H_
#define LOGGER_H_

#include "spdlog/spdlog.h"
#include "spdlog/sinks/rotating_file_sink.h"
#include "spdlog/sinks/daily_file_sink.h"
#include "spdlog/sinks/stdout_color_sinks.h"
#include <iostream>
#include <memory>

// spd带行号的打印,同时输出控制台和文件(定义三级日志等级)
#define INFO(...) SPDLOG_LOGGER_INFO(spdlog::default_logger_raw(), __VA_ARGS__);SPDLOG_LOGGER_INFO(spdlog::get("daily_logger"), __VA_ARGS__)
#define WARN(...) SPDLOG_LOGGER_WARN(spdlog::default_logger_raw(), __VA_ARGS__);SPDLOG_LOGGER_WARN(spdlog::get("daily_logger"), __VA_ARGS__)
#define ERROR(...) SPDLOG_LOGGER_ERROR(spdlog::default_logger_raw(), __VA_ARGS__);SPDLOG_LOGGER_ERROR(spdlog::get("daily_logger"), __VA_ARGS__)

extern void LoggerInit();

extern void LoggerDrop();

#endif /*LOGGER_H_ */

3.加入cpp文件logger.cpp

#include "logger.h"

void LoggerInit()
{
	// 按文件大小
	//auto file_logger = spdlog::rotating_logger_mt("daily_logger", "logs/log.txt", 1024 * 1024 * 20,  5);

	// 每天2:30 am 新建一个日志文件
	auto logger = spdlog::daily_logger_mt("daily_logger", "LogFolder/logs/daily.txt", 2, 30);

	// 遇到warn级别以上的日志进行持久化,防止日志丢失
	logger->flush_on(spdlog::level::warn);

	//日志每3秒钟向磁盘持久化
	spdlog::flush_every(std::chrono::seconds(3));

	// 设置默认的logger
	auto console = spdlog::stdout_color_mt("console");
	spdlog::set_default_logger(console);

	// 设置日志输出级别
	spdlog::set_level(spdlog::level::info);

	// 设置日志格式
	spdlog::set_pattern("[%Y-%m-%d %H:%M:%S][%l][%s:%#] %v");
}


void LoggerDrop()
{
	spdlog::drop_all();
}

4.使用

工程开始需要

LoggerInit();

用法示例:

INFO("Push a cpi data!PluseNum is:{},SignalPreProc time is:{}ms",usFlagCPI,diff);

工程结束需要

LoggerDrop();

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM