Как Boost :: log печатает с таким же отступом? - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь создать журнал в формате:

expr::stream
            << "[" << expr::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S.%f")
            << "] [" << logging::trivial::severity
            << "]  " << expr::message;

Какие выходные данные:

[2020-05-06 12:25:00.978764] [info]  Testing
[2020-05-06 12:25:00.978880] [trace]  Testingtrace

Это, однако, журнал консоли по умолчанию:

[2020-05-06 12:17:23.190613] [0x00007eff5e9767c0] [info]    Testing
[2020-05-06 12:17:23.190677] [0x00007eff5e9767c0] [trace]   Testingtrace

Как видите, несмотря на то, что штамп «info» короче, чем след, оба сообщения начинаются с одного и того же отступа.

Я хотел сделать это, сравнив и установив количество пробелов в соответствии с серьезностью уровень, начиная с выполнения теста с «info», но это:

logging::trivial::severity == logging::trivial::info

Не является допустимым логическим выражением.

Кто-нибудь знает, как определяется формат по умолчанию и как я могу go о достижении этого.

1 Ответ

0 голосов
/ 06 мая 2020

Если кому-то интересно, хотя setw тоже работает, как указано Alan Birtles , более простым решением будет просто использовать \ t:

expr::stream
            << "[" << expr::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S.%f")
            << "] " << "[" << logging::trivial::severity
            << "]\t" << expr::message;

Результат:

[2020-05-06 12:56:41.741449] [info]     Testing
[2020-05-06 12:56:41.741783] [trace]    Testingtrace
[2020-05-06 12:56:41.741826] [warning]  Testingtrace

Не знаю, как я раньше не думал об этом ... пшш

...