封装spdlog库可以提供一个更易于管理和使用的日志系统。以下是一个基于spdlog的封装类的实现步骤,包括类的设计、接口的实现以及使用示例。 1. 了解spdlog库的基本功能和API spdlog是一个高性能的C++日志库,支持多种日志级别(如debug、info、warn、error等),并且支持多种日志输出目标(如控制台、文件等)。它还支持异步...
{public:staticSimLog&Instance();voidInitSimLog(std::stringlogger_name,std::stringfile_name,intlog_level=spdlog::level::trace);voidEndLog();voidSetLevel(intlevel =spdlog::level::trace); auto GetLogger() {returnmy_logger_; }private://私有构造函数,拷贝构造函数和拷贝赋值函数,禁止在类外声明实例S...
就需要加上这些宏,为了方便,通常的做法是将日志封装成宏函数的形式,进行日志输出。 对于宏,有很多的优点,但是我个人不喜欢宏,调试不友好,只是进行简单的字符串替换,没有语法检查。 如果不使用宏,又没法在程序运行的时候获取需要的信息,因此,问题的关键是如何在非运行期获取行号等信息。 现代C++新增的constexpr关键...
MyLog::GetInstance().InitLogObject(); ……. std::stringstream ss; ss << __FILE__ << “:” << __FUNCTION__ << “:” << __LINE__ << “:”; ss<< std::this_thread::get_id(); MyLog::GetInstance().GetFileObject()->info(“日志:{},{}”, “测试文件”, ss.str().data()...
网址:https://github.com/gabime/spdlog 特性: 支持控制台或异步文件输出 支持控制台彩色输出 封装 Logger.h #pragma once#include"Framework/Utility/Singleton.h"#include<spdlog/spdlog.h>#include<filesystem>namespacefs=std::filesystem;classLogger:publicSingleton<Logger>{public:Logger(token);~Logger();std...
可以的,你可以封装一个C++类来管理spdlog的register容器。这个类可以包含静态成员函数或者单例模式,用于创建和访问spdlog的logger对象。在这个类中,你可以定义一些方法来进行日志记录、设置日志级别、配置文件输出等操作。 以下是一个简单示例: #include<spdlog/spdlog.h> ...
封装Log头文件# 一般的项目对日志要求都不高,主要是要求日志线程安全、异步写入文件、每天生成新日志、支持日志回调显示,spdlog稍微配置一下即可。 把spdlog相关的配置全放到Log.h文件中,封装成Log头文件有两个好处: 可以随时替换后台日志实现 对外只用暴露一个头文件 ...
封装Log头文件# 一般的项目对日志要求都不高,主要是要求日志线程安全、异步写入文件、每天生成新日志、支持日志回调显示,spdlog稍微配置一下即可。 把spdlog相关的配置全放到Log.h文件中,封装成Log头文件有两个好处: 可以随时替换后台日志实现 对外只用暴露一个头文件 ...
spdlog的简单封装和使用 AI检测代码解析 #ifndef _SIMLOG_H_ #define _SIMLOG_H_ #include <QtWidgets/QWidget> #include <spdlog/spdlog.h> #include "simlog_export.h" #ifdef _WIN32 //strrchr:查找字符在指定字符串从右面开始的第一次出现的位置,若是成功,返回该字符以及后面的字符,若是失败,返回NULL...
spdlog是一个C++编写的极速日志打印库,支持异步写日志以及多种模式和格式化选项。以下基于spdlog库封装了一个简单易用的功能类,采用的是header-only方式,便于项目集成。 代码 #pragma once#include<iostream>#include<string>#include<memory>#include#include<chrono>#include"spdlog/spdlog.h"#include"spdlog/async...