zoukankan      html  css  js  c++  java
  • 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()); //错误
    。。。。。。
    //正确的方式只有一个, 错误的方式千千万万
    

    如果文章有帮助到您,请点个赞,您的反馈会让我感到文章是有价值的

  • 相关阅读:
    4.Docker Compose 部署 Nexus
    3.Docker Compose 部署 GitLab
    2.Docker Compose 部署应用程序
    1.Docker Compose
    6.Dockerfile 指令
    5.Dockerfile 定制镜像
    4.Docker 操作容器
    3.Docker 操作镜像
    2.Ubuntu安装 Docker
    windows快捷键
  • 原文地址:https://www.cnblogs.com/ElEGenT/p/13493189.html
Copyright © 2011-2022 走看看