Boost.Log - управление повторяющимися последовательными сообщениями журнала и предотвращение печати дубликатов - PullRequest
0 голосов
/ 09 марта 2020

Я новичок в Boost.Log и использую его для разработки библиотеки логгера в качестве оболочки над Boost.Log. Моя проблема заключается в поиске удобного способа установки счетчика для количества последовательных повторяющихся сообщений журнала вместо печати одного и того же журнала несколько раз.

например: ( метод ADD_LOG () находится в моей библиотеке и выполняет BOOST_LOG_SEV (...) )

ADD_LOG("Hello");
ADD_LOG("Hello");
ADD_LOG("Hello");
ADD_LOG("Some Different Hello");

Я хочу быть выходным файлом журнала как это: (sample_0.log)

.................................... ....................

[TimeStamp] [Filter] Hello

[TimeStamp] [Filter] Пропущено 2 повторяющихся сообщения!

[TimeStamp] [Filter] Разное Hello

............................. ..........................

Я использую этот пример с Text File Backend и TimeStamp, Filter в порядке. Моя проблема заключается в пропуске дубликатов. может быть с настройкой фильтров или чем-то еще.

Я думаю, syslog в linux имеет эту функцию в некоторых конфигурациях.

1 Ответ

1 голос
/ 10 марта 2020

Boost.Log не реализует такое накопление записей журнала, вам придется реализовать его самостоятельно. Вы можете сделать это, внедрив приемник бэкэнда , который буферизует последнее сообщение записи журнала и сравнивает его со следующим. Обратите внимание, что вам не следует буферизовать всю запись или отформатированную строку, поскольку она может отличаться из-за временных меток, счетчиков записей и других часто меняющихся значений атрибутов, которые вы можете использовать.

...