1说明
只需要包含头文件即可编译调用
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");