诊断弹簧接线问题通常涉及挖掘堆栈跟踪中的很长的消息,如下所示:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'foo' defined in class path resource [blah/blah/Foo.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [blah.blah.Foo]: Factory method 'foo' threw exception; nested exception is ... [five more of these because your wiring is Byzantine] nested exception is [your real problem]
是否有任何工具/技术可以让您更轻松地看到这些错误?最愚蠢的痛点主要在于,该消息是一个非常长的行,在 IDE 控制台(在本例中为 IntelliJ)中滚动到右侧,而妙语始终位于末尾。
我正在想象可能是一个用于更友好的堆栈跟踪显示的插件,或者可能是具有特定 spring 智能的东西。
经过一些研究和 @klorand 的建议,我发现了三种改进 IntelliJ 显示堆栈跟踪方式的方法:
-
您可以点击“使用软包装”窗口右侧的图标。这将防止水平滚动,从而使任何超出窗口宽度的信息显示在新行上。
-
IntelliJ上有一个配置叫做控制台折叠 https://www.jetbrains.com/help/idea/2018.2/settings-console-folding.html。您可以为 IntelliJ 指定过滤器以隐藏堆栈跟踪中的某些包。只需单击“调试”窗口上堆栈的任意行并选择“像这样折叠线”。这将打开一个与此类似的配置窗口:
在此示例中,所有包含以下内容的控制台行at sun.reflect
将被折叠。我一直在不断添加新的过滤器,并使用此配置使我的堆栈跟踪在垂直方向上更小。
您可以使用Logback https://www.codingame.com/playgrounds/4497/configuring-logback-with-spring-boot自定义日志在控制台中显示的方式。我在我的上使用了以下配置logback.xml https://pastebin.com/r6FaAgQr文件来截断控制台上记录的所有警告和错误消息。和format https://logback.qos.ch/manual/layouts.html#formatModifiers配置您可以指定最小/最大宽度和对齐方式。我隐藏了包和方法信息,以便只显示核心消息,但您也可以指定要显示的字符数限制,甚至自定义一个定制转换器 https://logback.qos.ch/manual/layouts.html#customConversionSpecifier.
Before:
After:
Finally
组合这三个配置设置将帮助您使控制台消息在垂直或水平方向上更小,并更好地控制日志消息的显示或控制台方式,或保存到文件中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)