V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hubin0203
V2EX  ›  Java

tomcat 启动日志问题,求解

  •  
  •   hubin0203 · 2019-09-02 17:15:40 +08:00 · 3803 次点击
    这是一个创建于 1909 天前的主题,其中的信息可能已经有所发展或是发生改变。

    tomcat 中启动一个 java web 项目

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

    数据库连接用的 dbcp,hibernate。

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

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

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

    谢谢。

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

    1、你配置的 log4j 日志是否可以正常输出业务日志?如果不可以先配好 log4j
    2、如果业务日志可以输出,项目启动初始化 db 的代码是否执行成功,可能根本没有初始化数据库连接池
    3、如果初始化连接池了,log4j 配置了 dbcp 的连接包名么,包名配置不正确会导致日志无法输出;估计你没配这个,连接错误日志会抛到 catalina.out 也就是控制台
    hustmisa
        3
    hustmisa  
       2019-09-02 17:38:52 +08:00
    @hustmisa 所以我倾向于第二点,连接就没初始化
    hubin0203
        4
    hubin0203  
    OP
       2019-09-02 17:43:28 +08:00 via Android
    @gouzhiyuanchina 配置没问题,如果数据库连接信息( url,库名,用户名,密码)配置正确,就连接正常,debug. log 中便不报错。
    hubin0203
        5
    hubin0203  
    OP
       2019-09-02 17:46:34 +08:00 via Android
    @hustmisa 谢谢,log4j 配置生效了,因为在 debug. log 中可以打印出异常信息,主要就是启动项目中,无论在 IDE 的 console 中还是打成 war 包扔 tomcat 中运行( Windows 环境下),cmd 的控制台中都不打印数据库连接异常信息,不知道这么说您能理解不
    hustmisa
        6
    hustmisa  
       2019-09-02 18:16:37 +08:00
    @hubin0203 嗯嗯 理解;错误连接情况下,tomcat 依旧可以启动,数据库连接的代码应该是单独一个线程吧,可以 try 这部分代码打印异常日志试试么;
    还有个想法不知道对错,dbcp 里边有 commons-logging 的 dependency,会不会你项目本身引入了不同版本 logging 的 jar 包导致冲突,日志无法打印?
    hubin0203
        7
    hubin0203  
    OP
       2019-09-02 18:40:54 +08:00 via Android
    @hustmisa 嗯嗯,谢谢,改天我去试试看。因为新入职,要维护一个老项目,这个项目 maven 都没用到,改天去检查一下 jar 包,谢谢啦
    LeeSeoung
        8
    LeeSeoung  
       2019-09-02 18:43:26 +08:00
    数据库连接异常信息 是啥?能贴出来?
    hubin0203
        9
    hubin0203  
    OP
       2019-09-02 20:23:50 +08:00 via Android
    @LeeSeoung 这不重要,我随便写了个 IP,肯定连不上的,问题在于 tomcat 启动日志里没有数据库连接异常信息
    fmumu
        10
    fmumu  
       2019-09-02 20:55:33 +08:00 via Android
    日志 logAppender 有配置到 console 吗,log 配置放出来来看看
    hubin0203
        11
    hubin0203  
    OP
       2019-09-02 21:18:14 +08:00 via Android
    @fmumu 公司电脑不能连外网,回头我检查一下,谢谢
    Aresxue
        12
    Aresxue  
       2019-09-03 09:45:10 +08:00
    1.数据库在初始化的时候没有进行连接的建立;
    2.数据库连接报错了,只不过日志中没有输出;
    3.日志输出了, 只不过被 console 屏蔽掉了;
    4.console 没有屏蔽, 只是你没找到。
    401825317
        13
    401825317  
       2019-09-03 16:30:00 +08:00
    打断点
    第一打在数据库连接池,确定初始化
    第二打在连接池成功后日志输出确定使用的 log 和级别
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2702 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 03:39 · PVG 11:39 · LAX 19:39 · JFK 22:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.