java中e.printStackTrace()只会输出到控制台吗?不会输出到日志文件吗?

要想输出到日志文件是否需要 logger.error(e)?
需要logger.error(e)还是logger.error(e.printStackTrace())?

阅读 11.8k
2 个回答
  1. tomcat下会输出到catalina.out
  2. 不要用e.pringStackTrace()打日志
  3. 如果要输入调用栈的话,log.error("错误信息", e);,不输出调用栈的话就log.error("错误信息");

e.pringStackTrace()底层是调用了System.err.println().
应该这样用

try {
    // do Something
} catch (IllegalAccessException e) {
    logger.error("错误信息: ", e);
}

更多详情请看: Logback输出异常堆栈

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题