#define ERROR(...) SPDLOG_LOGGER_ERROR(spdlog::default_logger_raw(), __VA_ARGS__);SPDLOG_LOGGER_ERROR(spdlog::get("daily_logger"), __VA_ARGS__) intmain(intargc,char*argv[]) { // 按文件大小 //auto file_logger = spdlog::rotating_logger_mt("file_log", "log/log.log", 1024 *...
在尝试使用spdlog的过程中,我首先访问了其GitHub页面(github.com/gabime/spdlog),并按照官方文档快速入门。spdlog的安装与集成主要通过CMake或Vcpkg进行,以确保项目中拥有所需的功能。手动编译时,通过CMake命令生成的makefile进行编译,若机器上未安装CMake,需要先进行安装(例如使用cmake3.14.5在mac...
Basic file logger #include"spdlog/sinks/basic_file_sink.h"voidbasic_logfile_example() {try{autologger =spdlog::basic_logger_mt("basic_logger","logs/basic-log.txt"); }catch(constspdlog::spdlog_ex &ex) { std::cout <<"Log init failed:"<< ex.what() << std::endl; } } ...
#include<spdlog/sinks/rotating_file_sink.h> boolCInitSoft::initLog(void) { //初始化日志spdlog,https://github.com/gabime/spdlog CString strFilePath = FILEMANAGE->GetLogsDir() + _T("\\logApp.txt"); std::string logpath =CT2A(strFilePath.GetBuffer()); strFilePath.ReleaseBuffer(); try ...
spdlog::set_error_handler([](const std::string& msg) { std::cerr << "my err handler: " << msg << std::endl; }); logger 默认情况下,spdlog的默认logger为输出到stdout: # ifdef _WIN32 auto color_sink = std::make_shared<sinks::wincolor_stdout_sink_mt>(); ...
文件日志 基本文件 最简单的日志文件: 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 #include"spdlog/sinks/basic_file_sink.h"voidbasic_logfile_example()
注意trace和debug的输出不太一样,打开spdlog.h,查看SPDLOG_TRACE的定义,可以发现trace中还输出了文件的位置(“__FILE__”)。 #ifdef SPDLOG_TRACE_ON # define SPDLOG_STR_H(x) #x # define SPDLOG_STR_HELPER(x) SPDLOG_STR_H(x) # ifdef _MSC_VER ...
spdlog支持多个线程向同一个logger写log消息,也支持logger将同一个log消息写向多个sink file目标。因此,使用多生产者-多消费者的异步模型。该模型通过类模板mpmc_blocking_queue实现,支持存放用户需要的数据类型。底层通过环形队列q_来存储数据,通过2个条件变量+1个互斥锁确保线程安全。
#define ERROR(...) SPDLOG_ERROR(__VA_ARGS__) #define CRITICAL(...) SPDLOG_CRITICAL(__VA_ARGS__) //单个日志文件 #define GETLOG(LOG_NAME) get_async_file_logger(LOG_NAME) #define LOGGER_TRACE(logger,...) SPDLOG_LOGGER_TRACE(logger,__VA_ARGS__) ...
(){returnlogPtr;}private:std::shared_ptr<spdlog::logger>logPtr;};#defineINITLOG(path)BaseLog::getInstance()->init(path)//参见SPDLOG_LOGGER_CALL#defineSPDLOG_BASE(logger,level,...)(logger)->log(spdlog::source_loc{__FILE__,__LINE__,__func__},level,__VA_ARGS__)#defineTRACELOG(.....