Я ищу способ включить __LINE__
в качестве константы времени компиляции в выводимых сообщениях.
Существуют различные решения, но с большим штрафом за выполнение, предложенным в __LINE__
в JS и __LINE__
в С#. Обычно они всегда основаны на объекте времени выполнения StackFrame
как log4j.
Использование log4j Возможность включения/выключения по необходимости не является вариантом, поскольку обычно, когда происходит ошибка, слишком поздно, чтобы включить номера строк, а встроенный код, похоже, не имеет номеров строк Больше. , Было бы возможно:
- Предварительно обрабатывайте исходные файлы java перед компиляцией, в идеале, с чем-то интегрированным с Eclipse 1 поэтому его можно также протестировать на платформе разработки.
- Уметь предварительно обрабатывать класс во время загрузки. Накладные расходы тогда были бы незначительными, если были амортизированы.
<суб > 1. На самом деле я использую уродливый хак: вызов пользовательского препроцессора сразу после проверки на сервере сборки с помощью ANT трюков