场景描述:springboot项目启动,日志停留在某处,不继续打印。jps看到服务启动, 访问服务接口失败,没有任何日志输出,包括异常日志也没有。
解决办法:
1.是否是log配置有问题,查看log配置没有问题,修改日志级别为debug,还是没有异常日志输出
2.是否项目中存在异常捕捉,未打印异常信息。 经排查,修改代码中的e.printStackTrace() 。 但这不影响异常日志打印出来
3.将服务器jar包下载下来,本地启动成功。服务器日志和本地日志 前后差别: 服务器日志卡在 数据库连接池初始化前
4.jps查看java服务ID,jstack -pid 查看栈信息 。 查看java.lang.Thread.State: WAITING 的栈信息,可以看到com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1841) ,在创建连接。 正常启动服务也会出现这种栈信息,数据库连接池不是保持不变的,连接动态创建和销毁。 需要结合实际情况判断。本案例结合第3条初步确认是数据库连接池的问题
2020-05-14 20:22:12
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.111-b14 mixed mode):
"Attach Listener" #50 daemon prio=9 os_prio=0 tid=0x00007fdda0001000 nid=0x34ee