如何跟踪基于Spring的Web应用程序中所有函数的进入和退出?

Mik*_*Lin 5 java logging spring

在我现在使用的基于Spring的Web应用程序项目中,开发人员已经为每个函数编写了两个日志记录语句.一个将条目记录到函数中,另一个记录退出.我们的想法是跟踪执行路径 - 至少是一个功能级别.

有没有办法实现这一点,而不会乱丢整个代码库与这些重复的语句?

要清楚,我们要记录所有函数,而不仅仅是Spring bean的公共方法.

nic*_*ild 5

你可以用Spring AOP做到这一点。

Spring AOP 将允许您“拦截”方法调用并在方法调用之前和/或之后执行任意代码。您还可以检查这些方法的参数和返回值。

要实现您正在谈论的日志记录,您可以执行以下操作,可能使用around 建议

  1. 拦截所有方法调用(或者最好只拦截您感兴趣的方法)。
  2. 做你的“方法之前”记录。
  3. 调用方法。
  4. 做你的“后方法”记录。

有关如何执行此操作的所有 Spring 详细信息都可以在提供的文档中找到。