SpringBoot 升级到 2.1 后,启动程序时控制台不打印 API 的解决方法及一些感想

1、问题描述

我将我的 SpringBoot 版本由 2.0.5.RELEASE 升级到 2.1.3,发现在项目启动的时候,控制台不打印 API 了。
应该不是日志级别而是配置的问题,我尝试调整过日志级别,发现并没有卵用(其实是有用的,只不过样式变了,一开始没发觉)。
将版本再切换回 2.0.5.RELEASE, 就能正常打印 API 了。

2、解决方法

配置文件中更改 org.springframework.web 包的日志级别:

logging:
  level:
    org.springframework.web: TRACE

启动程序时将会在控制条打印出如下信息:

2019-03-04 02:20:47.554 TRACE 13549 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping :
    c.s.q.c.AccountBookController:
    {POST /accountBook/addAccountBook}: addAccountBook(AccountBookDTO,BindingResult,String)
    {GET /accountBook/overview}: overview(String)
    {GET /accountBook/loanDetail/{id}}: loanDetail(int)
    {POST /accountBook/repayment/{id}}: repayment(int)
2019-03-04 02:20:47.561 TRACE 13549 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping :
    c.s.q.c.PortalMessageController:
    {GET /message/xxx}: xxx()
    {GET /message/xxx}: xxx(String)

3、解决思路

首先百度是怎么都没能找到答案,倒是在百度知道上看到了一个提相同问题的人。
没办法,我只能用 poor English 在 Google 搜索:SpringBoot do not print apiSpringBoot not print url, 倒还真被我找到了:eclipse spring boot console log does not print mapped controller info

内容大概提到了,Spring Boot 2.1 使用了 Spring Framework 5.1, 而 Spring Framework 5.1 对日志做了较大的改动。
现在使用 INFO 级别记录的信息非常少,DEBUG 级别提供了更多信息,但不详细。
只有 TRACE 级别才会提供详细信息。

所以,我跑到了 GitHub 去翻看了 SpringBoot 的 Wiki, V2.1 中也提到了:

Spring Framework 5.1 revisited the debug logging output while working on web applications (Spring MVC or Spring WebFlux). If you are trying to debug an application and you want to restore Spring Boot 2.0 style logging you should add the following to your application.properties:
...

4、一些感想

首先呢,就是既然要使用新版本,最好还是要去看看人家 Wiki, 留意一下新特性。就算不用新版本,但既然是做这一行的,对于这种更新同样也要多留意一下;
其次呢,如果有些问题百度不出来,就算使用再拙劣的英文,也要尝试去 Google、StackOverflow 搜一下,也许会有意外收获呢 :>

原文地址:https://www.cnblogs.com/VitoYi/p/10468663.html

时间: 2024-10-26 10:41:18

SpringBoot 升级到 2.1 后,启动程序时控制台不打印 API 的解决方法及一些感想的相关文章

CentOS 6.4断电后启动出现:unexpected inconsistency run fsck manully 解决方法

centos 6.4断电或者重启后出现以上问题 错误信息最后提示的""control -D"",是重启系统的,没什么卵用. 解决方法: 输入服务器root密码 执行以下命令修复磁盘 fsck -y /dev/sdb3 注意:我遇到的是 ""/dev/sdb3 你的不一定和我相同"" 3.重启系统 reboot fsck fsck 作用是用来检查和维护不一致的文件系统.如果系统发生异常关机或者磁盘发生问题,可以利用 fsck命令

QT项目升级(QT4.6.3到QT5.2)时,遇到的问题和解决方法

QT4升级到QT5修改: PC部分: [改QTDIR变量] 在project根文件夹下找到.user文件, 如InnoTabPlugin.vcxproj.user 改动指向你的QT5根文件夹: <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|Win32'"> <QTDIR>C:\qt\Qt5.2.1\5.2.1\msvc2010</QTDIR> </Prop

【转】WinDbg调试器:启动程序时自动连接调试器方法

当我们调试服务进程或子进程时,无法直接用调试加载进程的方式启动,此时需要在启动程序时自动连接调试器方法: 第一步:注册表展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options路径下: 第二步:在Image File Execution Options上鼠标右键,新建"项",项名为你要调试的程序,比如 test.exe: 第三步:在项名上,右键,新建字符

net start mysql启动mysql,提示发生系统错误 5 拒绝访问 解决方法

解决问题方法如下: 在dos下运行net  start mysql 不能启动mysql!提示发生系统错误 5:拒绝访问!切换到管理员模式就可以启动了.所以我们要以管理员身份来运行cmd程序来启动mysql. 那么如何用管理员身份来运行cmd程序呢? 0.在C:\Windows\System32下面找到cmd.exe,右键附加到开始菜单 1.右键单击cmd选择"附到[开始]菜单(U)";这是就可以到开始菜单上找到cmd了, 2.右击选择属性,选择快捷方式,选择以管理员身份运行,再单击确定

zabbix启动报错:Connection to database &#39;xxx&#39; failed解决方法

Zabbix 分布式系统监视系统 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. 本文讲解的是zabbix无法启动报错:Connection to database 'xxx' failed: [1045] Access denied for user 'xxx'@'localhost' (using password: NO)

IE8升级新版Flash Player ActiveX14导致的discuz图片附件无法上传 解决方法

之前发的这篇文章被编辑之后丢失了,无奈从百度快照找来重新发布,不知道csdn抽啥风 架不住sb adobe的频繁升级提示,手欠升级到了了flash player 14,结果IE8下所有discuz论坛中都无法看到上传图片的按钮了 没办法,遇到问题就解决吧 刚好在解决IE11遇到编辑器不显示问题的时候看到discuz编辑器文件上传有非flash解决方案 所以这个问题看上去就不难了,把普通上传给打开就行了 编辑discuz文件/template/default/forum/editor_menu_f

CUDA程序编译过程中产生警告的解决方法

有时候经常使用别人用Tabhost+其它的实现demo.单纯利用Tabhost该如何使用呢? 下面看例子: public class MainActivity extends TabActivity { public TabHost tabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 获取对象 tabHost = getTabH

WordPress程序打开速度慢的三种解决方法

WordPress程序打开速度慢的三种解决方法 最近好多用户反应,在使用WordPress程序的网站时,不论打开网站前台或是后台,速度都是非常慢.联想近期的GOOGLE断网事件,不难发现,原来是GOOGLE"故障"所致,以致WP内置的字体链接失效://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clati

svn删除目录后提交显示Item &#39;XXXX&#39; is out of date解决方法

http://www.2cto.com/os/201211/166515.html —————————————————————————————————————————————————————————————— svn删除目录后提交显示Item 'XXXX' is out of date解决方法 1.在要删除的目录上执行 svn 的 Delete  www.2cto.com 2.来到要删除目录的上级目录,执行更新操作. 3.找到要删除的目录,会显示冲突状态,在这个目录上执行Resolved. 4.