implement message counter feature

adds %i logger pattern for printing log message sequence ID
This commit is contained in:
Alexander Zilberkant
2017-05-18 22:36:48 +03:00
parent bf3a415b1d
commit f29ff77ae7
5 changed files with 36 additions and 15 deletions

View File

@@ -92,7 +92,14 @@ class a_formatter:public flag_formatter
msg.formatted << days()[tm_time.tm_wday];
}
};
// message counter formatter
class i_formatter SPDLOG_FINAL:public flag_formatter
{
void format(details::log_msg& msg, const std::tm& tm_time) override
{
msg.formatted << '#' << msg.msg_id;
}
};
//Full weekday name
static const days_array& full_days()
{
@@ -645,6 +652,10 @@ inline void spdlog::pattern_formatter::handle_flag(char flag)
_formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::pid_formatter()));
break;
case ('i'):
_formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::i_formatter()));
break;
default: //Unknown flag appears as is
_formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::ch_formatter('%')));
_formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::ch_formatter(flag)));