set_pattern("*** [%H:%M:%S %z] [thread %t] %v ***");rotating_logger->info("This is another message with custom format");// Runtime log levelsspd::set_level(spd::level::info);//Set global log level to infoconsole->debug("This message shold not be displayed!");console->set...
通过set_pattern方法,我们指定了日志的格式,其中[%Y-%m-%d %H:%M:%S.%e]用于表示时间戳(包括年、月、日、时、分、秒和毫秒),[%^%l%$]用于表示日志级别(不同级别的日志会有不同的颜色显示),%v用于表示日志消息的内容。 这样,你就可以使用spdlog在日志信息中包含时间戳了。如果你有更多的自定义需求,比如...
spdlog::set_pattern("%+ [thread %t]");//设置输出格式直接打印spdlog::trace("This message shold not be displayed!"); spdlog::debug("This message shold not be displayed!"); 控制台带颜色输出 日志等级 enumlevel_enum{trace = SPDLOG_LEVEL_TRACE, debug = SPDLOG_LEVEL_DEBUG, info = SPDLOG_...
如图创建两个sink,都将其绑定到logger上,于是logger可以输出日志到终端和文件上。 自定义pattern sink2被修改了输出格式。 %^:表示日志级别的起始颜色标记。这个占位符可以用于在彩色控制台输出中设置日志级别的颜色。 %l:表示日志级别的占位符。它将被替换为实际的日志级别,例如 "info"、"error" 等。 %$:表示日...
set_formatter(std::move(new_formatter));这行代码调用了set_formatter成员函数,将新创建的格式化器new_formatter设置为当前日志记录器的格式化器。 总的来说,set_pattern函数用于设置日志记录器的格式化模式,可以通过传入一个特定的模式字符串和一个时间格式来定制日志输出的格式。
Setting pattern globally like this doesn't work: spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%n] [%l] %v");
voidmulti_sink_example(){auto console_sink=std::make_shared<spdlog::sinks::stdout_color_sink_mt>();console_sink->set_level(spdlog::level::warn);console_sink->set_pattern("[multi_sink_example] [%^%l%$] %v");auto file_sink=std::make_shared<spdlog::sinks::basic_file_sink_mt>("log...
voidspdlog::set_pattern(conststd::string&); voidspdlog::set_formatter(formatter_ptr); voidspdlog::set_error_handler(log_err_handler); 日志对象的大部分方法也是线程安全的,除了: voidspdlog::logger::set_pattern(conststd::string&); voidspdlog::logger::set_formatter(formatter_ptr); ...
set_formatter(std::make_unique<my_custom_formatter>()); 针对第一种方法: //应用于全局所有注册的日志样式设置 spdlog::set_pattern("*** [%H:%M:%S %z] [thread %t] %v ***"); //应用于日志对象的样式设置 some_logger->set_pattern(">>> %H:%M:%S %z %v <<<"); //特定的接收器对...
我们在使用日志的时候,为了方便调试,会希望日志中包含打日志的代码行号,文件等信息。如图所示。 通常的做法是通过内置的宏__FUNCTION__输出函数名,__FILE__输出文件名。如果想要在调用日志输出的地方输出这些信息, 就需要加上这些宏,为了方便,通常的做法是将日志封装成宏函数的形式,进行日志输出。