使用spdlog1.8版本
输出格式pattern
通过set_pattern
可设定日志格式,如set_pattern("[%Y-%m-%d %H:%M:%S.%e][%l](%@): %v");
输出标记flag:
flag | meaning | example |
---|---|---|
%v | 日志内容 | “my log test content” |
%t | 线程ID | “123” |
%P | 进程ID | “234” |
%n | 记录器Logger名 | “basicLogger” |
%l | 日志级别 | “debug”, “info”, etc |
%L | 日志级别简称 | “D”, “I”, etc |
%a | 星期几(简称) | “Thu” |
%A | 星期几 | “Thursday” |
%b | 月份简称 | “Aug” |
%B | 月份 | “August” |
%c | 日期时间 | “Thu Aug 23 15:35:46 2014” |
%C | 年(两位) | “14” |
%Y | 年 | “2014” |
%D %x | 日期简写 | “08/23/14” |
%m | 月份(数字) | “11” |
%d | 日(数组) | “29” |
%H | 小时(24制) | “23” |
%I | 小时(12制) | “11” |
%M | 分钟 | “59” |
%S | 秒 | “58” |
%e | 毫秒 | “678” |
%f | 微秒 | “056789” |
%F | 纳秒 | “256789123” |
%p | AM/PM | “AM” |
%r | 时间(12制) | “02:55:02 pm” |
%R | 时分(24制) | “23:55” |
%T %X | 时间(24制) | “23:55:59” |
%z | 时区(偏移) | “+02:00” |
%E | epoch(秒) | “1528834770” |
%% | 百分号 | “%” |
%+ | 默认格式 | “[2014-10-31 23:46:59.678] [mylogger] [info] Some message” |
%^ | start color range (can be used only once) | “[mylogger] [info(green)] Some message” |
%$ | end color range (for example %^[+++]%$ %v) (can be used only once) | [+++] Some message |
%@ | 文件名与行数 | my_file.cpp:123 |
%s | 文件名 | my_file.cpp |
%g | 文件名(含路径) | /some/dir/my_file.cpp |
%# | 行数 | 123 |
%! | 函数名 | my_func |
%o | 相对上一条记录的时间间隔(毫秒) | 456 |
%i | 相对上一条记录的时间间隔(微秒) | 456 |
%u | 相对上一条记录的时间间隔(纳秒) | 11456 |
%O | 相对上一条记录的时间间隔(秒) | 4 |
日志输出中要携带文件名、行数或函数名时,必须使用SPDLOG_LOGGER_*
宏,且要激活对应的级别(哪些级别以上的日志会被记录):
// 记录INFO及以上级别日志
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_INFO
#include "spdlog/spdlog.h"
SPDLOG_LOGGER_INFO(myLogger, "Support for floats {:03.2f}", 1.23456);
SPDLOG_LOGGER_WARN(myLogger, "Easy padding in numbers like {:08d}", 12);