У меня есть макрос, который может выглядеть следующим образом (из библиотеки лога буста)
#define L_(lvl) BOOST_LOG_USE_LOG_IF_LEVEL(g_l(), g_log_level(), lvl )
Можно ли обернуть это в объект boost :: function <> или указатель на функцию и поместить его в очередь или вектор таких элементов?
Если это так, как бы я это сделал?
Я пытаюсь написать механизм, в котором у меня есть 1 поток для записи всех журналов в файлы журналов, и любой из рабочих потоков должен иметь возможность войти в него, но в зависимости от уровня активного журнала, я бы только хочу войти, что настроено для входа. Таким образом, я бы создал очередь для любого потока, чтобы поставить в очередь сообщения журнала, а затем записать их в соответствующий файл с выделенным потоком, чтобы не замедлять работу моей программы, когда требуется много журналирования. Я хочу использовать библиотеку boost :: log, поэтому мне нужно работать с этим макросом, поскольку он записывает в файл под обложками.
lvl
- это уровень журнала, который вы передаете этой функции. его использование будет: L_(debug) << "some log text";