Я использую Boost.Log V2 1.75.0 и настраиваю свою среду из файла конфигурации с помощью boost::log::init_from_stream(config);
Можно ли объявить цветной приемник консоли через файл конфигурации или есть ли способ добавить цветной вывод в консоль?
Теперь я добавляю столько приемников консоли, сколько уровней журнала доступно в Boost Trivial Logger, и фильтрую их по разным уровням, но я не думаю, что это правильный путь. Пример:
[Sinks.ConsoleSinkTrace]
Destination=Console
Filter="%Severity% = trace"
Format="\033[0;35m[%TimeStamp%] [%ProcessId%] [%ThreadId%] [%Severity%] - %Message%\033[0m"
Asynchronous=false
AutoFlush=true
[Sinks.ConsoleSinkDebug]
Destination=Console
Filter="%Severity% = debug"
Format="\033[0;34m[%TimeStamp%] [%ProcessId%] [%ThreadId%] [%Severity%] - %Message%\033[0m"
Asynchronous=false
AutoFlush=true
... и так далее...
Обновить
Я нашел сообщение SO, предложенное @AndreySemashev, но я действительно не понимаю, как я могу приспособить его к своему проекту: мое основное ожидание состоит в том, что я хочу настроить Boost.Log через файл, поэтому:
- если я вообще удалю приемник консоли из файла конфигурации, как установить средство форматирования в приемник? (Я предполагаю, что
sink
- это приемник консольного типа, который не будет создан, если в файле конфигурации нет такого раздела)
раковина-›set_formatter(&coloring_formatter);
- если я предоставлю новый метод форматирования, я предполагаю, что обработка всей строки формата, указанной в файле конфигурации, является моей ответственностью. я тоже хочу этого избежать
Верны ли эти наблюдения, или я что-то упускаю?
Спасибо