tomcat 启动日志问题,求解

2019-09-02 17:15:40 +08:00
 hubin0203

tomcat 中启动一个 java web 项目

tomcat 启动日志不报数据库连接异常信息,是咋回事?

数据库连接用的 dbcp,hibernate。

场景复现:在数据库配置文件配错误的数据库连接信息,保证启动项目无法初始化数据库连接。

启动后,启动成功,控制台没打印数据库连接异常信息。

项目中集成 log4j,配置中设置在 debug.log 文件中打印 debug 信息。 待项目启动后,可以在 debug.log 中看到数据库连接异常信息。

谢谢。

3642 次点击
所在节点    Java
13 条回复
gouzhiyuanchina
2019-09-02 17:31:08 +08:00
连接池的配置 是不是没配置 init 多少个 或者设置成 0 了?
hustmisa
2019-09-02 17:38:01 +08:00
你写的问题好难理解,尤其倒数第二句“待项目启动后,可以在 debug.log 中看到数据库连接异常信息”

1、你配置的 log4j 日志是否可以正常输出业务日志?如果不可以先配好 log4j
2、如果业务日志可以输出,项目启动初始化 db 的代码是否执行成功,可能根本没有初始化数据库连接池
3、如果初始化连接池了,log4j 配置了 dbcp 的连接包名么,包名配置不正确会导致日志无法输出;估计你没配这个,连接错误日志会抛到 catalina.out 也就是控制台
hustmisa
2019-09-02 17:38:52 +08:00
@hustmisa 所以我倾向于第二点,连接就没初始化
hubin0203
2019-09-02 17:43:28 +08:00
@gouzhiyuanchina 配置没问题,如果数据库连接信息( url,库名,用户名,密码)配置正确,就连接正常,debug. log 中便不报错。
hubin0203
2019-09-02 17:46:34 +08:00
@hustmisa 谢谢,log4j 配置生效了,因为在 debug. log 中可以打印出异常信息,主要就是启动项目中,无论在 IDE 的 console 中还是打成 war 包扔 tomcat 中运行( Windows 环境下),cmd 的控制台中都不打印数据库连接异常信息,不知道这么说您能理解不
hustmisa
2019-09-02 18:16:37 +08:00
@hubin0203 嗯嗯 理解;错误连接情况下,tomcat 依旧可以启动,数据库连接的代码应该是单独一个线程吧,可以 try 这部分代码打印异常日志试试么;
还有个想法不知道对错,dbcp 里边有 commons-logging 的 dependency,会不会你项目本身引入了不同版本 logging 的 jar 包导致冲突,日志无法打印?
hubin0203
2019-09-02 18:40:54 +08:00
@hustmisa 嗯嗯,谢谢,改天我去试试看。因为新入职,要维护一个老项目,这个项目 maven 都没用到,改天去检查一下 jar 包,谢谢啦
LeeSeoung
2019-09-02 18:43:26 +08:00
数据库连接异常信息 是啥?能贴出来?
hubin0203
2019-09-02 20:23:50 +08:00
@LeeSeoung 这不重要,我随便写了个 IP,肯定连不上的,问题在于 tomcat 启动日志里没有数据库连接异常信息
fmumu
2019-09-02 20:55:33 +08:00
日志 logAppender 有配置到 console 吗,log 配置放出来来看看
hubin0203
2019-09-02 21:18:14 +08:00
@fmumu 公司电脑不能连外网,回头我检查一下,谢谢
Aresxue
2019-09-03 09:45:10 +08:00
1.数据库在初始化的时候没有进行连接的建立;
2.数据库连接报错了,只不过日志中没有输出;
3.日志输出了, 只不过被 console 屏蔽掉了;
4.console 没有屏蔽, 只是你没找到。
401825317
2019-09-03 16:30:00 +08:00
打断点
第一打在数据库连接池,确定初始化
第二打在连接池成功后日志输出确定使用的 log 和级别

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597263

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX