日志中__FILE__的路径问题

在C++中使用日志库打印日志时,有时候需要附带日志相关的源文件信息,可能会使用如的宏:

  • __FILE__
  • __LINE__
  • __FUNCTION__

打印日志的效果可能如下:
在这里插入图片描述
日志中会附带长长的源文件的全路径,有点难看,文件名是由**__FILE__**宏输出来的,

那么,通过重新定义__FILE__即可解决,如下:

-U__FILE__ -D__FILE__='"$(subst $(dir $<),,$<)"'

通过修改g++的flags即可解决,

CxxFALGS += -U__FILE__ -D__FILE__='"$(subst $(dir $<),,$<)"'

当然,在CMakeLists.txt文件中解决的方法也是类似的,增加如下命令:
在这里插入图片描述

编译后,输出的结果如下:
在这里插入图片描述
在不影响性能的前提下,清爽了很多。

网上很多的方法是在运行进解决,这种方法千万不要尝试,对性能有较大的影响。