如何在Spring Boot应用程序中调试交易?
有没有办法查看方法调用如何在事务上下文中分组?
您在这里问了两个广泛的问题。
1。如何调试交易(从您的帖子标题中,您正在寻找记录)
实现的最简单方法是在Springboot中使用捆绑的java.util.logging.Logger
。
下面的代码片段应告诉您:
public class EmojiController {
private final static Logger logger = Logger
.getLogger(EmojiController.class.getName());
public ModelAndView getEmoji() {
logger.info("emoji: " + emojiId + " lookup initiated");
---do something---
}
默认情况下,如果使用"启动器",则将使用记录来记录。还包括适当的记录路由,以确保使用Java util Loggging,Commons Logging,Log4J或SLF4J的依赖库都可以正常工作。
2。分组与一项交易有关的方法调用:
这是一个非常广泛的主题,在分布式应用程序体系结构(如Micro-Services)的上下文中询问时,它甚至具有更广泛的应用程序。关键是,您如何将各种日志条目相互关联以将它们分组以呈现全面的视图。
解决方案在于概念称为分布式跟踪。您可以在乔什·朗(Josh Long)的这篇精彩帖子中详细介绍。
可以在此处找到有关讨论技术的更详细的文档 -
- 侦探-http://cloud.spring.io/spring-cloud-sleuth/spring-cloud-sleuth.html
- Zipkin -http://zipkin.io/
它应该帮助您实现想要的目标,但如果您对它们的使用有更多疑问,请提出另一个问题。
---编辑---
有一个有关春季参考记录的部分。
它显示了如何配置不同的记录框架,其中包括log4j
在您的情况下,配置的最后一行将是:
log4j.logger.org.springframework.transaction=DEBUG