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输出异常堆栈

推荐问题