log4cxx日志没有源文件路径?

时间:2012-11-20 08:10:25

标签: c++ log4cxx

log4cxx模式%l将输出源文件名及其日志路径,如果源文件位于深层目录中,则在使用绝对路径编译时,会使读取起来感到不舒服。

2012-11-20 15:59:14,184 0x7f7ae90e27c0 TRACE fogs.common (/home/jw/fogs/d_common/net/inc/amf3conn.hpp:158) - Entering setCallbackObjBuffer

有没有办法只在日志中输出amf3conn.hpp:158,以缩短日志行?

1 个答案:

答案 0 :(得分:2)

我认为这不可能是开箱即用的。根据{{​​3}},您可以使用%l%F,但%F仅丢弃行号并仍然打印路径。

您有两种选择:

  • 子类PatternLayout并实现您自己的位置转换处理,丢弃路径并仅使用文件名
  • 或者使用长度修改器设置位置的最大长度,例如%.20l,这样会导致inc/amf3conn.hpp:158。如果您选择最长源文件名的长度,则无论如何都会得到完整的文件名(可能前面带有部分路径)