如何在春季调试交易?

时间:2017-03-10 10:49:18

标签: spring-boot spring-transactions

如何在Spring启动应用程序中调试事务?

有没有办法看到方法调用如何在事务上下文或其他上下文中进行分组?

1 个答案:

答案 0 :(得分:0)

您在此处提出了2个广泛的问题。

<强> 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---
}

默认情况下,如果使用“Starters”,则Logback将用于记录。还包括适当的Logback路由,以确保使用Java Util Logging,Commons Logging,Log4J或SLF4J的依赖库都能正常工作。

<强> 2。对与一个事务相关的方法调用进行分组:

这是一个非常广泛的主题,在分布式应用程序架构(如微服务)的上下文中提出时,它的应用范围更广。关键是,如何将各种日志条目相互关联,以便将它们分组以进行整体视图。

解决方案就是名为分布式跟踪的概念。你可以在Josh Long的这篇精彩的post中详细了解这一点。

有关所讨论技术的更详细文档可在此处找到 -

它可以帮助您实现您想要的效果,但如果您对其使用有更多疑问,请提出另一个问题。

---编辑---

有一个关于登录Spring Reference的部分。

它显示了如何配置不同的日志框架,其中包括log4j

在你的情况下,配置的最后一行是:

log4j.logger.org.springframework.transaction=DEBUG