actuator base path存放的是什么包?
What package is the actuator base path stored?
我希望记录我所有的 Spring-Boot 项目请求。我的切入点适合我的编程,我可以获得子路径,但不是基本执行器路径。
com.example.demo...(..) - 这适用于我的编程
org.springframework.boot.actuate...(..) - 这适用于像 http://localhost:8080/[=32= 这样的路径] 或 http://localhost:8080/actuator/health。这有效
None 我的切入点仅适用于“http://localhost:8080/actuator”,没有其他路径。我已经尝试通过 org.springframework.boot.actuate 路径和执行器罐查看我是否错过了路径,但我找不到任何东西。我查看了 org.springframework.boot.actuate.autoconfigure,但这似乎不对。
我只需要捕获它并记录请求,但是我找不到 http://localhost:8080/actuator
谢谢
您可以通过定义 Filter
class 来记录所有请求。它也适用于 /actuator
请求。
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
// Run as first filter
@Order(Ordered.HIGHEST_PRECEDENCE)
@Component
public class LogFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
System.out.println(httpRequest.getMethod() + " - " + httpRequest.getRequestURI());
chain.doFilter(request, response);
// do anything after response
}
}
使用 Actuator HttpTraceFilter
记录详细信息。您可以将详细信息记录在文件中或直接记录到数据库中。
示例内存存储库
@Repository
public class CustomTraceRepository extends InMemoryTraceRepository {
private static final Logger log = LoggerFactory.getLogger(CustomTraceRepository.class);
public CustomTraceRepository() {
super.setCapacity(200);
}
@Override
public void add(Map<String, Object> map) {
super.add(map);
log.info("traced object: {}", map);
}
}
省去别人的麻烦。
服务于http://yourhost:8080/actuator基本路径的class是
处理页面的程序在第 76 行左右(当前版本)。不幸的是,它是一个内部 class 而不是 public 并且 Spring AOP 似乎无法找到它。
因此,如果可以的话,上面的过滤器答案可能很好,但是执行 Spring AOP 不能直接违背 class。不幸的是,过滤器在我的情况下可能不起作用,但其他人可能会很高兴获得此信息。
我希望记录我所有的 Spring-Boot 项目请求。我的切入点适合我的编程,我可以获得子路径,但不是基本执行器路径。
com.example.demo...(..) - 这适用于我的编程
org.springframework.boot.actuate...(..) - 这适用于像 http://localhost:8080/[=32= 这样的路径] 或 http://localhost:8080/actuator/health。这有效
None 我的切入点仅适用于“http://localhost:8080/actuator”,没有其他路径。我已经尝试通过 org.springframework.boot.actuate 路径和执行器罐查看我是否错过了路径,但我找不到任何东西。我查看了 org.springframework.boot.actuate.autoconfigure,但这似乎不对。
我只需要捕获它并记录请求,但是我找不到 http://localhost:8080/actuator
谢谢
您可以通过定义 Filter
class 来记录所有请求。它也适用于 /actuator
请求。
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
// Run as first filter
@Order(Ordered.HIGHEST_PRECEDENCE)
@Component
public class LogFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
System.out.println(httpRequest.getMethod() + " - " + httpRequest.getRequestURI());
chain.doFilter(request, response);
// do anything after response
}
}
使用 Actuator HttpTraceFilter
记录详细信息。您可以将详细信息记录在文件中或直接记录到数据库中。
示例内存存储库
@Repository
public class CustomTraceRepository extends InMemoryTraceRepository {
private static final Logger log = LoggerFactory.getLogger(CustomTraceRepository.class);
public CustomTraceRepository() {
super.setCapacity(200);
}
@Override
public void add(Map<String, Object> map) {
super.add(map);
log.info("traced object: {}", map);
}
}
省去别人的麻烦。
服务于http://yourhost:8080/actuator基本路径的class是
处理页面的程序在第 76 行左右(当前版本)。不幸的是,它是一个内部 class 而不是 public 并且 Spring AOP 似乎无法找到它。
因此,如果可以的话,上面的过滤器答案可能很好,但是执行 Spring AOP 不能直接违背 class。不幸的是,过滤器在我的情况下可能不起作用,但其他人可能会很高兴获得此信息。