[英]How to pass some data from current html page to controller on button click as an argument for another api call in springboot thymleaf?
[英]SpringBoot: how to pass argument (request id) from controller through all program?
我使用SpringBoot应用程序。 每个请求都有ID。 当某些服务和程序的更底层位置出现错误时,我必须使用此ID。 我该如何实施? 谢谢!
要将上下文ID添加到日志中,可以使用MDC:
在您的代码中:
MDC.put("first", "Dorothy");
在您的logback.xml中
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout>
<Pattern>%X{first} %X{last} - %m%n</Pattern>
</layout>
</appender>
您可以使用ThreadLocal来存储特定线程的ID。
然后,在您的服务中,可以通过ThreadLocal#get
方法获得该ID。
例如(这只是一种方法):
class AppProvider {
public static final ThreadLocal<String> APP_CONTEXT = new ThreadLocal<String>();
}
class Controller {
public void users(@RequestParam String id) {
AppProvider.APP_CONTEXT.set(id);
.......
}
}
class Service {
try {
} catch (Exception e) {
log.error(String.format("Id: %s", AppProvider.APP_CONTEXT.get()));
}
}
这只是使用ThreadLocal的一种方法。
查看此以进行内存泄漏处理: https : //stackoverflow.com/a/17975255/1715121
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.