如何为多行字符串添加前缀?
how to add prefix for multi lines string?
有时,源字符串包含多行。从日志结果的第二行开始,我发现没有前缀。我不想将源字符串拆分为单行,有什么想法吗?
int main()
{
BOOST_LOG_TRIVIAL(info) << "hello\nworld";
return 0;
}
输出:
[2017-12-05 09:49:34.957813] [0x000028d4] [info] hello
world
我想要以下输出:
[2017-12-05 10:01:35.033017] [0x00000af8] [info] hello
[2017-12-05 10:01:35.033017] [0x00000af8] [info] world
不幸的是,Boost.Log 无法做到这一点。您在流表达式中生成的任何输出(包括换行符)都被视为单个日志记录,它被格式化一次,因此它在输出中只有一个时间戳和其他属性。
您应该手动将行分成不同的日志记录。如果日志消息文本是从外部源(例如网络或来自某些库的回调)收到的,您将必须自己用换行符拆分文本。
有时,源字符串包含多行。从日志结果的第二行开始,我发现没有前缀。我不想将源字符串拆分为单行,有什么想法吗?
int main()
{
BOOST_LOG_TRIVIAL(info) << "hello\nworld";
return 0;
}
输出:
[2017-12-05 09:49:34.957813] [0x000028d4] [info] hello
world
我想要以下输出:
[2017-12-05 10:01:35.033017] [0x00000af8] [info] hello
[2017-12-05 10:01:35.033017] [0x00000af8] [info] world
不幸的是,Boost.Log 无法做到这一点。您在流表达式中生成的任何输出(包括换行符)都被视为单个日志记录,它被格式化一次,因此它在输出中只有一个时间戳和其他属性。
您应该手动将行分成不同的日志记录。如果日志消息文本是从外部源(例如网络或来自某些库的回调)收到的,您将必须自己用换行符拆分文本。