最近在更新苍穹最新版本后,执行数据库请求时,以前的缺字段、SQL错误以及表不存在等异常信息统统不见了,取而代之的是Databaseexecuteexception;相信大部分开发老师都会抓狂,因为根本无法从这简陋的几个英文单词中提取到丝毫有用的信息。本篇文章将会列举几种使用场景中查找详细错误日志的方法。升级脚本报错下图是我们的升级脚本执行结果的页面红框中就是本次执行升级脚本任务的任务号,根据任务号去monitor的日志系统中作为关键字搜索:1.将任务号作为关键字搜索2.从搜索到的日志中找到packageInforesultis字样的日志3.找到该条日志对应的traceid找到traceid后以traceid加上错误SQL作为搜索条件缩小搜索范围:找到时间点以后,重新筛选所有的ERROR级别日志,在通过时间点可以定位错误的具体信息日常苍穹使用界面报错下图是场景的业务界面的数据库执行报错:在异常堆栈界面找到traceid后去monitor的日志系统根据traceid就能查找到详细的错误日志。查询分析器执行报错下图是执行查询分析器报错界面:1.浏览器F12打开网络(network)2.执行请求3.点击第一个请求的header响应头中找到traceid4.根据traceid在日志系统即可查询到详细的错误信息其它场景上述的是比较常见的几个场景,肯定不能覆盖苍穹的使用的各个方面,要想查找到具体的错误日志信息,最主要的信息是代码运行上下文的traceid,只要找到traceid,然后去monitor查询详细日志即可。如果仍然无法找到详细错误日志,可以在研发环境开启参数db.error.throw.showExceptionMode=debug,回到之前直接返回详细错误日志的方式。为什么会屏蔽返回的数据库异常的详细信息数据库执行异常时,原有的返回执行SQL、参数以及详细异常信息,很有可能会泄漏用户名/密码/余额/权限/路径/数据库版本/数据库ip及用户名等敏感信息,这些信息很有可能被恶意的入侵者利用,进一步提升权限,最终造成安全事故,所以我们应安全部门要求,将返回的敏感信息统一屏蔽。