spdlog的使用

spdlog git地址

https://github.com/gabime/spdlog

参考README.md文件
1.下载代码

git clone https://github.com/gabime/spdlog.git

2.编译
  • windows下:
cd spdlog 
mkdir build
cd build
cmake ..

再build目录中打开spdlog.sln,进行编译,编译后生成spdlog.lib静态库

  • Linnux下:
cd spdlog && mkdir build && cd build
cmake .. && make -j
3.引用
  • 源码目录include下的spdlog目录中的所有头文件及生成的spdlog.lib文件
4.使用示例
  • 可参考源码example目录下给定例子及ReamdMe.md例子,其中日志输出格式可参考源码目录下的wiki中给出的说明
  • 下面给出使用示例:
#pragma once

#ifndef ENABLE_STDOUT
    #define LOG_MAX_SIZE          10*1024*1024
    #define LOG_MAX_FILES         100
    #ifndef SPDLOG_ACTIVE_LEVEL
    #define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_TRACE   //set the log level,need define SPDLOG_ACTIVE_LEVEL and set_level before include 'spdlog.h'.
    #endif //SPDLOG_ACTIVE_LEVEL
    #include "spdlog/spdlog.h"
    #include "spdlog/sinks/rotating_file_sink.h" //分割文件
    //#include "spdlog/sinks/basic_file_sink.h"  //不分割文件
    #define LOGGER_INIT(fileName)  \
            spdlog::set_level(spdlog::level::trace); \ /*可以在 #include "spdlog/spdlog.h"之后设置*/
            spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e][thread %t][%s:%#][%l] : %v"); \
            spdlog::rotating_logger_mt("LogDemo", fileName,LOG_MAX_SIZE,LOG_MAX_FILES);  //分割文件
            //spdlog::basic_logger_mt("LogDemo",fileName,true); //不分割文件  
    #define LOGGER_UNINIT()  \
            spdlog::drop_all(); \
            spdlog::shutdown();
                    
    #define LOGGER_GET_FILE_LOGGER() spdlog::get("LogDemo")
    
    #define LOGGER_TRACE(args,...)        SPDLOG_LOGGER_TRACE(LOGGER_GET_FILE_LOGGER(),args,__VA_ARGS__); LOGGER_GET_FILE_LOGGER()->flush();
    #define LOGGER_DEBUG(args,...)        SPDLOG_LOGGER_DEBUG(LOGGER_GET_FILE_LOGGER(),args,__VA_ARGS__); LOGGER_GET_FILE_LOGGER()->flush();
    #define LOGGER_INFO(args,...)         SPDLOG_LOGGER_INFO(LOGGER_GET_FILE_LOGGER(),args,__VA_ARGS__); LOGGER_GET_FILE_LOGGER()->flush();
    #define LOGGER_WARN(args,...)         SPDLOG_LOGGER_WARN(LOGGER_GET_FILE_LOGGER(),args,__VA_ARGS__); LOGGER_GET_FILE_LOGGER()->flush();
    #define LOGGER_ERROR(args,...)        SPDLOG_LOGGER_ERROR(LOGGER_GET_FILE_LOGGER(),args,__VA_ARGS__); LOGGER_GET_FILE_LOGGER()->flush();
    #define LOGGER_CRITICAL(args,...)     SPDLOG_LOGGER_CRITICAL(LOGGER_GET_FILE_LOGGER(),args,__VA_ARGS__); LOGGER_GET_FILE_LOGGER()->flush();
#else
    #include "spdlog/spdlog.h"
    #include "spdlog/sinks/stdout_color_sinks.h"
    #include <iostream>
    #include <memory>
    #define LOGGER_INIT(...) \
            spdlog::set_level(spdlog::level::trace); \
            spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e][thread %t][%s:%#][%l] : %v"); \
            spdlog::stdout_color_st("console");
    #define LOGGER_UNINIT() \
                spdlog::drop_all();
    #define LOGGER_GET_FILE_LOGGER() spdlog::get("console")
    #define LOGGER_TRACE(...)        LOGGER_GET_FILE_LOGGER()->trace(__VA_ARGS__);
    #define LOGGER_DEBUG(...)        LOGGER_GET_FILE_LOGGER()->debug(__VA_ARGS__);
    #define LOGGER_INFO(...)         LOGGER_GET_FILE_LOGGER()->info(__VA_ARGS__); 
    #define LOGGER_WARN(...)         LOGGER_GET_FILE_LOGGER()->warn(__VA_ARGS__); 
    #define LOGGER_ERROR(...)        LOGGER_GET_FILE_LOGGER()->error(__VA_ARGS__); 
    #define LOGGER_CRITICAL(...)     LOGGER_GET_FILE_LOGGER()->critical(__VA_ARGS__);    
#endif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值