一日,工程一直再报 [RMI TCP Connection(10.0.20.175:2181)] DEBUG org.apache.zookeeper.ClientCnxn - Got ping response for sessionid: 0x15aeeb4d0c80bdb after 1ms。
(1)细看log4j.properties文件,日志是INFO级别,很奇怪,加上log4j.logger.org.apache.zookeeper=INFO, 不起效果
(2) 懵逼,然后就对比其他没打印日志的工程,发现log4j.properties配置一样。继续懵逼
(3) 网上检索org.apache.zookeeper.ClientCnxn - Got ping response for sessionid相关信息,大多一言半语,大部分没营养。发现是zookeeper的心跳机制日志。
(4) 然后去检索怎么关闭zookeeper的心跳机制日志,又在一堆没营养的博客中找到了一位大神写的分析,是log4j和logback都加上后,日志选择了logback,去除logback依赖即可。
(5) 工程去除logback依赖,发现没问题,问题解决。
以上为解决问题的步骤,看起来简单确迂回颇多。感慨下思路的重要性,顺便整理下解决问题的思路
(1) 问题的表象是什么,涉及到哪些方面。
(2) 检索问题表象的原因,是那个对象引起的,什么逻辑造成的,怎么解决。别人怎么分析解决的(思路)
(3) 测试和验证解决的思路,看是否解决问题,对其他方面有无影响。
同时,需要反思了下以前解决问题(办事)的问题
(1)没有按部就班,左边挖个坑右边挖个坑,到最后都没找到问题的源头,应该是顺着问题,从表象,缘由,解决一条线去深思挖掘。
(2)程序的世界出错肯定有错误信息,光检索错误信息解决方式不思考原理,不追查源码如何成长!