关于写日志的思考

业务背景:最近写项目的时候,写完后测试的时候难免出现各种意想不到的错误或者异常,此时需要排查问题解决bug

环境背景:一旦上到预生产环境以后,xShell 没有权限登陆机器,没有办法看到控制台,log 日志一般只是打印了 error 级别的,info 级别的日志正常是没有开启的。

现状:基于上面的背景,出现的结果就是排查问题的时候,不太好定位问题,插排问题效率比较低下。

思考或者注意:

  • 一般像接收到外部接口比较重要的数据,或者进入另一个重要任务的入口之前,可以先将数据作为日志打出来,根据能打印的log 级别去打印一下,然后在跑完方法或任务结束的时候再次打印一下,以便观察整体方法是否有出错的情况。
  • 在使用 try catch 的时候,catch 的内容不要随便吃掉,要打印出来以便排查问题的时候所用。也要将堆栈打出来,一般将e 打出来,并配上相关的文字说明,知道是哪个地方出了问题,如果单单只有文字说明但没有堆栈信息的话很难知道具体是什么问题,这个日志打的基本没有多大用。
  • 现在出现的一种写法就是业务主线意外的情况,有可能直接通过抛出异常的情况来处理,
    throw new BizException("参数taxName不能为空!"); 类似这种写法。BizException 继承的RuntimeException。这种写法有如果遇到调用量很大的时候,性能就比较差了。其原因:异常处理的时候,会一层一层往上抛,所以量上来的时候性能会很受影响。在写异常处理的时候,一定要把异常范围小的放在前面,范围大的放在后面。有多个catch的时候,Exception这个异常的根类一定要放在最后一个catch里面,如果放在前面或者中间,任何异常都会和Exception匹配。
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章