Log4cxx и полные пути к файлам при использовании с CMake - PullRequest
3 голосов
/ 11 февраля 2011

Я использую Log4Cxx для ведения журнала, и я хотел бы использовать директиву% l, чтобы увидеть, где находится трассировка журнала (имя файла и номер строки).У меня проблема в том, что я также использую CMake, который предоставляет полные пути к компилятору .Это приводит к тому, что столбцы журнала больше не выровнены, и их теперь трудно читать, поскольку log4cxx использует макрос препроцессора __FILE__ для определения этой информации.

Кто-нибудь знает какой-нибудь обходной путь?Я хотел бы указать, например, либо получение только «filename.cpp» или, что лучше, с параметром вложения, например, вложение 2 будет «module / submodule / filename.cpp».Кажется, что по замыслу CMake работает с философией полного пути, поэтому я думаю, что это можно решить либо с помощью неизвестной мне директивы препроцессора, либо каким-то образом обмануть Log4CXX.

1 Ответ

1 голос
/ 22 февраля 2011

Похоже, вы могли бы попытаться использовать «ConversionPattern», чтобы хотя бы указать максимальную ширину для вывода имени файла log4cxx:

http://logging.apache.org/log4cxx/apidocs/classlog4cxx_1_1_pattern_layout.html

Или выполнить «поиск на странице»ConversionPattern здесь для примера файла конфигурации:

http://logging.apache.org/log4cxx/index.html

В соответствии с документами, вы должны получить самые правые символы при указании максимальной ширины.Может быть, это достаточно близкое приближение к тому, что вы ищете здесь.

CMake всегда передает полные имена файлов исходного пути компилятору, чтобы символы отладки ссылались на правильные исходные файлы (с одной стороны).Просто проще гарантировать, что все будет работать везде на всех платформах, используя полные пути.

...