在客户现场以及测试环境,有时候会遇到异常堆栈日志不全的情况,从而导致无法准确定位问题。
于是网络上搜索相关的信息,发现需要增加jvm参数:
-XX:-OmitStackTraceInFastThrow
根据资料 https://stackoverflow.com/questions/2411487/nullpointerexception-in-java-with-no-stacktrace 可知:
优化之处在于,当第一次发生异常(通常是 NullPointerException)时,会打印完整的堆栈跟踪,并且 JVM 会记住堆栈跟踪(或者可能只是代码的位置)。 当该异常发生得足够频繁时,将不再打印堆栈跟踪,这样既可以实现更好的性能,又不会用相同的堆栈跟踪淹没日志。
又因为为docker部署,所以通过在docker-compose.yaml文件中增加对应的配置,重启服务,通过查看cmd命令,可知已经增加了对应的配置