Есть ли уже написанный и протестированный аспект для ведения журнала трассировки
Я рефакторингую устаревшее приложение, в котором фактическое приложение разбросано между множеством операторов ведения журнала. Я мог бы немедленно извлечь выгоду, удалив ведение журнала уровня трассировки (метод ввода/вывода). Однако это оказалось полезным много раз при отладке приложения во время интеграционного тестирования и т. д. Поэтому мне интересно, есть ли уже работающий и проверенный (используемый в течение некоторого времени) аспект, написанный для этого? Я пошел, хотя некоторые онлайн-сообщения, но они кажутся достаточно простыми (и не конечно, если они когда-либо действительно использовались), чтобы использоваться для реального проекта.
2 ответа:
Проверка аспектов из "AspectJ in Action "(источники можно загрузить из http://manning.com/laddad2 я использовал очень близкие вариации аспектов из главы 10 о реальных проектах.
Вы можете использовать
@Loggable
аннотация из jcabi-aspects, вместе со встроенным аспектом AspectJ:@Loggable(Loggable.TRACE) public String load(URL url) { return url.openConnection().getContent(); }
Он регистрируется через SLF4J, который вы можете перенаправить на свой собственный объект регистрации, например, log4j.