Log4j输出日志没有堆栈解决
问题
logger.error("xxx error",exception)
正常的日志输出 ,在生产环境中,时常会没有异常堆栈输出 。
java.lang.NullPointerException
这真的是让人头大, 这就是降维打击。(看《三体》学的词,哈哈)
解决
JVM为了性能会做优化, 如果频繁抛出某个异常,会重新编译 , 不再打印异常堆栈 。
只要在启动参数加上 -XX:-OmitStackTraceInFastThrow
, 就可以禁用该优化。
java.lang.NullPointerException
at ........
Log4j日志的正确输出方法
异常日志的输出 的正确使用方式是:
logger.error("xxx error",exception); //正确
logger.error("xxx error , " + exception); //错误
logger.error("xxx error , " + exception.getMessage()); //错误
logger.error("xxx error : {} ",exception.getMessage()); //错误
。。。。。。
//正确的方式只有一个, 错误的方式千千万万
如果文章有帮助到您,请点个赞,您的反馈会让我感到文章是有价值的