使用easylogging ++记录QString时插入的额外空间

时间:2017-11-29 13:44:51

标签: c++ qt logging format easylogging++

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

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)并不期望这样。

1 个答案:

答案 0 :(得分:0)

根据这个:https://github.com/muflihun/easyloggingpp/issues/179,可以使用LoggingFlag::AutoSpacing标记。

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

  

您可以使用静态el :: Loggers :: addFlag和来设置/取消设置这些标志   埃尔::记录仪:: 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));