log4cxx 日志,没有源文件路径

log4cxx log without source file path?

本文关键字:源文件 路径 日志 log4cxx      更新时间:2023-10-16

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,缩短日志行?

我认为这不可能开箱即用。根据 API 文档,您可以使用 %l%F ,但%F只丢弃行号并仍然打印路径。

您有两种选择:

  • 子类PatternLayout并实现您自己的位置转换处理,丢弃路径并仅使用文件名
  • 或者使用长度修饰符设置位置的最大长度,例如 %.20l,这会导致您的情况inc/amf3conn.hpp:158。如果选择最长源文件名的长度,则在任何情况下都会获得完整的文件名(可能前面加上部分路径)