1

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在日志中输出,以缩短日志行?

4

1 回答 1

2

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

您有两种选择:

  • 子类PatternLayout化并实现您自己的位置转换处理,丢弃路径并仅使用文件名
  • %.20l或者使用长度修饰符来设置位置的最大长度,就像inc/amf3conn.hpp:158你的情况一样。如果您选择最长的源文件名的长度,则在任何情况下都将获得完整的文件名(可能以部分路径开头)
于 2012-11-20T08:35:10.600 回答