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

Решение

Я не думаю, что это возможно из коробки. Согласно API документы, Вы можете использовать либо %l или же %F, но %F только сбрасывает номер строки и по-прежнему печатает путь.

У вас есть два альтернативных варианта:

  • Подкласс PatternLayout и реализовать собственную обработку преобразования местоположения, отбрасывая путь и используя только имя файла
  • Или используйте модификатор длины, чтобы установить максимальную длину для местоположения, что-то вроде %.20l что приведет к inc/amf3conn.hpp:158 в твоем случае. Если вы выберете длину самого длинного имени исходного файла, вы получите полное имя файла в любом случае (возможно, с предваряющей частью пути)
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]