Есть ли уже написанный и протестированный аспект для ведения журнала трассировки


Я рефакторингую устаревшее приложение, в котором фактическое приложение разбросано между множеством операторов ведения журнала. Я мог бы немедленно извлечь выгоду, удалив ведение журнала уровня трассировки (метод ввода/вывода). Однако это оказалось полезным много раз при отладке приложения во время интеграционного тестирования и т. д. Поэтому мне интересно, есть ли уже работающий и проверенный (используемый в течение некоторого времени) аспект, написанный для этого? Я пошел, хотя некоторые онлайн-сообщения, но они кажутся достаточно простыми (и не конечно, если они когда-либо действительно использовались), чтобы использоваться для реального проекта.

2 2

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.