Я пытаюсь отследить проблему в одном из моих Java-проектов, и в настоящее время я сталкиваюсь с возможностью вручную добавить lot операторов ведения журнала ко всей группе методов. Как вы, наверное, понимаете, мне не очень нравится эта идея:
Большинство этих методов являются критичными для производительности, и я бы не стал добавлять протоколирование, когда оно не нужно, даже если это что-то более легкое, чем log4j .
В некоторых случаях я хотел бы регистрировать операции классов из библиотеки Java. Хотя исходный код OpenJDK доступен, я не собираюсь предоставить собственную версию библиотеки Java только для этого.
Я заинтересован в регистрации определенных путей кода при определенных условиях. Хотя я мог бы, вероятно, централизовать проверки применимости журналирования, я все же предвидел непредвиденный рефакторинг в будущем, если мне потребуется изменить условия.
Добавление операторов регистрации в массовом порядке требует лот работы и времени, которые я бы предпочел использовать более продуктивно.
Учитывая существование библиотек манипулирования байт-кодом, таких как Javassist и BCEL , я надеялся, что может существовать структура ведения журналов, которая избавит меня от рутинной работы.
Поскольку я в основном интересуюсь аргументами вызова методов и возвращаемыми значениями при определенных условиях, существует ли основанная на инструментарии система ведения журналов для Java, которая позволила бы мне это сделать? Желательно что-то более современное и немного менее неловкое, чем Java-агенты ?