1

我有多行代码触发记录器(信息模式):

LOG(INFO) << connectionsBOther.at(connectionIdx).line
          << " (" << QString::number(connectionsBOther.at(connectionIdx).direction) << ") | "
          << connectionsBOther.at(connectionIdx).directionTarget
          << " "
          << QString::number(connectionsBOther.at(connectionIdx).departureRelative);

输出示例如下所示:

2017-11-29 14:38:07,643 INFO  [default] M85 ( 2) |  Hello  1

我遇到的问题是似乎附加在各个QString::number()调用前面的额外空间(下面的空格标有 # 以使它们更明显):

2017-11-29 14:38:07,643 INFO  [default] M85#(#2)#|##Hello##1

我正在寻找以下输出:

2017-11-29 14:38:07,643 INFO  [default] M85#(2)#|#Hello#1

我需要为此输出使用 INFO。我习惯于LOG(DEBUG)在整个地方放置额外的空间,但没想到LOG(INFO).

4

1 回答 1

0

据此:https://github.com/muflihun/easyloggingpp/issues/179,一个LoggingFlag::AutoSpacing标志可用。

从文档(在https://github.com/muflihun/easyloggingpp#logging-flags):

您可以使用静态 el::Loggers::addFlag 和 el::Loggers::removeFlag 设置/取消设置这些标志。您可以使用 el::Loggers::hasFlag 检查某个标志是否可用,所有这些函数都采用强类型枚举 el::LoggingFlag

我认为您应该取消设置上述标志以避免自动间距(即从日志中删除多余的空格)。

更新:

如果不使用<<运算符对您来说不是问题,您始终可以使用连接:

LOG(INFO) << QString(connectionsBOther.at(connectionIdx).line
          + " (" + QString::number(connectionsBOther.at(connectionIdx).direction) + ") | "
          + connectionsBOther.at(connectionIdx).directionTarget
          + " "
          + QString::number(connectionsBOther.at(connectionIdx).departureRelative));
于 2017-11-29T14:11:27.440 回答