Можно ли зарегистрировать вызов метода в Java (log4j)? - PullRequest
2 голосов
/ 07 декабря 2010

Можно ли зарегистрировать любой вызов метода в log4j Java?

Спасибо!

Ответы [ 3 ]

6 голосов
/ 07 декабря 2010

Нет, не без редактирования ни колл-сайтов, ни самого метода. Я думаю, что вы ищете что-то для аспектно-ориентированного программирования. Посмотрите, например, AspectJ .

0 голосов
/ 03 февраля 2013

Вы можете сделать это с помощью аннотаций AOP и Java. Я бы рекомендовал использовать аннотацию @Loggable и аспект AspectJ из jcabi-aspect (я разработчик):

@Loggable(Loggable.DEBUG)
public String load(URL url) {
  return url.openConnection().getContent();
}

В выводе журнала SLF4J вы увидите время выполнения метода, его параметры и имя.

0 голосов
/ 07 декабря 2010

Вы можете использовать %I в вашем шаблоне преобразования Log4j , чтобы распечатать название метода. НО имейте в виду, что «генерация информации о местоположении вызывающего абонента является чрезвычайно медленной и ее следует избегать, если скорость выполнения не является проблемой».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...