设为首页 加入收藏

TOP

一个简单的spdlog使用示例(二)
2023-09-09 10:25:49 】 浏览:297
Tags:简单的 spdlog
quot;logs/" + name + "/log.txt"); log->set_level(spdlog::level::trace); log->flush_on(spdlog::level::err); log->set_pattern("[%Y-%m-%d %H:%M:%S.%e] %^[%l]%$ [%t] [%s %!:%#] %v"); //记录器是自动注册的,不需要手动注册 spdlog::register_logger(name); } return log; } #define INITLOG() init_spdlog() #define TRACE(...) SPDLOG_TRACE(__VA_ARGS__) #define DEBUG(...) SPDLOG_DEBUG(__VA_ARGS__) #define INFO(...) SPDLOG_INFO(__VA_ARGS__) #define WARN(...) SPDLOG_WARN(__VA_ARGS__) #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__) #define LOGGER_DEBUG(logger,...) SPDLOG_LOGGER_DEBUG(logger,__VA_ARGS__) #define LOGGER_INFO(logger,...) SPDLOG_LOGGER_INFO(logger,__VA_ARGS__) #define LOGGER_WARN(logger,...) SPDLOG_LOGGER_WARN(logger,__VA_ARGS__) #define LOGGER_ERROR(logger,...) SPDLOG_LOGGER_ERROR(logger,__VA_ARGS__) #define LOGGER_CRITICAL(logger,...) SPDLOG_LOGGER_CRITICAL(logger,__VA_ARGS__) //时间统计宏 #define LOGSW() spdlog::stopwatch()

上面的代码是用于初始化和配置spdlog库的日志记录器的代码。主要包括以下几个部分:

  • init_spdlog()函数用于初始化spdlog库的配置。该函数创建了一个包含控制台、文件和回调三种sink的日志记录器,并设置将其设置为默认记录器。
  • get_async_file_logger()函数获取一个单独的异步文件日志记录器,主要用于记录多线程日志,一般情况下用的比较少。
  • 用于简化日志记录的操作一些宏,spdlog自带的有日志宏,这里只是简化一下并做隔离,实际上是对spdlog库的相应函数进行了封装。
  • 定义了一个LOGSW()宏,用于方便地创建一个时间统计器,使用时不需要过多的关注统计类本身。

使用方法

使用方法如下:

#include "Log.h"
#include <thread>
#include <chrono>
#include <iostream>

int main()
{
    INITLOG("path");

    //单个日志
    auto log1= GETLOG("Test1");
    auto log2= GETLOG("Test1");
    //原始调用方式
    //SPDLOG_LOGGER_INFO(log1, "123");
    LOGGER_INFO(log2, "123");

    auto sw = LOGSW();
    // 延时2秒
    std::this_thread::sleep_for(std::chrono::seconds(2)); 
    INFO("Elapsed {0} {1}","时间", sw);
    WARN("Elapsed {0} {1}", "时间", sw);
    //原始调用方式
    //SPDLOG_INFO("TEST");
    INFO("TEST");
}

最后生成的日志文件如下:
image
image

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇《CUDA编程:基础与实践》读书笔.. 下一篇Windows线程API —CreateTimerQue..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目