晚上又加班到现在。今天又解决了一个奇怪的问题。程序在本地电脑上执行正常在,在远程调试模式下执行正常,但是在部署环境上执行失败,线程里面的关键方法没有被执行。走了好多弯路,最后突然发现是因为在多线程环境中,获取其中一个变量的值没成功,所以下线程中的关键方法没有被执行到。留下深刻的教训就是日志一定要打印完整。尽可能的覆盖所有程序执行路径。方便出问题时,能定位到是在哪一步失败的,并且要注意日志的级别,只有配置对应级别的日志才会输出。不要一时偷懒对一些小概率异常的执行路径没有打印日志,导致可能要花更多的时间去排查定位问题。尤其是一开始考虑的原因方向错了,要花的时间就会更长。
后面行动,一定要检查程序所有执行路径中是否有日志输出,可以使用不同级别的日志,要尽可能做到全覆盖。
原文地址:http://www.cnblogs.com/doit8791/p/7801650.html