java - 您如何跟踪基于 Spring 的 Web 应用程序中所有功能的进入和退出?

标签 java spring logging

在我现在进行的基于 Spring 的 Web 应用程序项目中,开发人员已将两个日志记录语句写入每个函数。一个记录函数的入口,另一个记录退出。这个想法是跟踪执行路径——至少是一个功能级别。

有没有一种方法可以在不让这些重复语句使整个代码库乱七八糟的情况下实现这一目标?

明确地说,我们要记录所有函数,而不仅仅是 Spring bean 的公共(public)方法。

最佳答案

您可以使用 Spring AOP 执行此操作.

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

要实现您正在谈论的日志记录,您会做这样的事情,可能使用 around advice :

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

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

关于java - 您如何跟踪基于 Spring 的 Web 应用程序中所有功能的进入和退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194108/

相关文章:

java - 使用 LWJGL 和 VBO 的简单纹理不起作用

java - JOptionpane 检查是否输入了某些输入文本,如果没有,则确定按钮不起作用

java - SWT 中 Canvas 图像上的可点击对象

java - 在字符串数组中查找大写字母并将其提取出来

java - Hibernate + spring获取最新的lazy 1 to N属性值

java - Spring 数据 : JPA Repository in abstract base service to call findAll with specification

django - 我是否需要显式记录 Sentry 在 Django 中工作的消息

java - 为什么 Java 中的记录器很少有 System.out.println 有的 .toString()?

php - Laravel 使用 Monolog\Handler\BrowserConsoleHandler 进行日志记录

java - 事务标记为仅回滚,原因未知