spdlog 日志库基本使用
  TEZNKK3IfmPf 2023年11月14日 37 0

只需要包含头文件即可编译调用

2使用例子

#include "spdlog/spdlog.h"
#include <iostream>

int main()
{
auto fileLogger = spdlog::basic_logger_mt("fengyuzaitu", "test.log");
//fileLogger->flush_on(spdlog::level::info);//调用情况下立即刷新日志到磁盘
fileLogger->info("Welcome to fengyuzaitu51.cto!");
return 0;
}

linux编译指令:

g++ main.cpp  -std=c++11  -I./thrdparty/spdlog/include

3 何时刷新到磁盘文件问题

默认情况下,不会立刻刷新到磁盘文件,只有等到缓存达到一定的数量,才会刷新到文件

上面例子是因为程序在退出的时候,调用析构函数,直接输出到文件

1 指定立即刷新到文件

spdlog::flush_on(spdlog::level::info);

只要是Info级别以上的立即刷新到文件

代码

#include "spdlog/spdlog.h"
#include <iostream>

int main()
{
auto fileLogger = spdlog::basic_logger_mt("fengyuzaitu", "test.log", true);
fileLogger->flush_on(spdlog::level::info);
int nCount = 0;
while(1)
{
fileLogger->info("Welcome to fengyuzaitu51.cto!");
sleep(3);
nCount++;
if(nCount > 100)
{
break;
}
}

return 0;
}

如果不调用 fileLogger->flush_on(spdlog::level::info);需要等待有五十条记录以后才会刷新到文件,跟等待时间没有关系

4控制台输出

auto console = spdlog::stdout_color_st("console");

5 spdlog::flush_every函数未定义

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 已经是第一篇 下一篇: 已经是最后一篇
  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论