1、e.printStackTrace()打印在哪里

在catch中的e.printStackTrace()将打印到控制台

2、e.printStackTrace()打印的内容是什么

import org.apache.logging.log4j.Logger;public class ExceptionTest {private static final Logger logger=LogManager.getLogger(); public void  test() {try {int i=1/0;}catch(Exception e){    e.printStackTrace();}}public static void main(String[] args) {ExceptionTest test= new ExceptionTest();test.test();}}

输出结果如下:

java.lang.ArithmeticException: / by zeroat myProject.ExceptionTest.test(ExceptionTest.java:10)at myProject.ExceptionTest.main(ExceptionTest.java:18)

可见,e.printStackTrace()打印了错误的具体信息,即这个错误出现的位置,便于查找错误源

3、如果将e.printStackTrace()的信息打印在日志里应该怎么做呢?

见如下代码:

package myProject;import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;public class ExceptionTest {private static final Logger logger=LogManager.getLogger(); public void  test() {try {int i=1/0;}catch(Exception e){    logger.error(e);}}public static void main(String[] args) {ExceptionTest test= new ExceptionTest();test.test();}}

用logger.error(e);打印日志,输出结果如下:

19:17:39.753 [main] ERROR myProject.ExceptionTest - java.lang.ArithmeticException: / by zero

可见,用这种方法打印的日志,只有大概的错误信息,并没有指出报错的代码位置,不便于查找错误。用logger.error(e.getMessage());也是输出这种大概的错误信息。

再见如下代码:

package myProject;import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;public class ExceptionTest {private static final Logger logger=LogManager.getLogger(); public void  test() {try {int i=1/0;}catch(Exception e){    logger.error("ExceptionTest Exception:",e);}}public static void main(String[] args) {ExceptionTest test= new ExceptionTest();test.test();}}

用logger.error("ExceptionTest Exception:",e);,则输出结果如下:

9:20:32.948 [main] ERROR myProject.ExceptionTest - ExceptionTest Exception:
java.lang.ArithmeticException: / by zeroat myProject.ExceptionTest.test(ExceptionTest.java:10) [classes/:?]at myProject.ExceptionTest.main(ExceptionTest.java:18) [classes/:?]

这和e.printStackTrace()打印的内容大致是相同的。不过最好,还是使用logger.error(e.getMessage(),e)方法来在日志上查看异常的详细结果

java异常在控制台和日志里面的打印记录相关推荐

  1. java记录日志不打印控制台,java异常在控制台和日志里面的打印记录

    1.e.printStackTrace()打印在哪里 在catch中的e.printStackTrace()将打印到控制台 2.e.printStackTrace()打印的内容是什么 import o ...

  2. JAVA//异常、断言和日志

    1. 处理错误 1.2 异常分类 异常对象都是派生于 Throwable 类的一个实例.用户可以创建自己的异常类. Error 类层次结构描述了 Java 运行时系统的内部错误和资源耗尽错误. 应用程 ...

  3. Java异常持久化,Log4j进行日志的数据库持久化,说SQL语法异常。

    Log4j进行日志的数据库持久化,说SQL语法错误... 在properties的配置中.... log4j.appender.db = org.apache.log4j.jdbc.JDBCAppen ...

  4. Java核心技术笔记 异常、断言和日志

    <Java核心技术 卷Ⅰ> 第7章 异常.断言和日志 处理错误 捕获异常 使用异常机制的技巧 记录日志 处理错误 如果由于出现错误而是的某些操作没有完成,程序应该: 返回到一种安全状态,并 ...

  5. 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)...

    接前一篇CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南,继续对ELK. logstash官方最新文档https://www.elastic.co/g ...

  6. java 异常 日志_java(异常和日志)

    java异常看这篇就够了http://www.cnblogs.com/lulipro/p/7504267.html 1.类路径 所谓的类路径就是指程序运行时jvm要加载的类的.class文件所在地方 ...

  7. java异常及日志注意事项

    java异常及日志注意事项 参考文章: (1)java异常及日志注意事项 (2)https://www.cnblogs.com/lq147760524/p/8475531.html 备忘一下.

  8. java 异常堆栈日志分析_Java 进阶之路:深入解读 Java 异常堆栈丢失原因

    在应用程序的开发和维护中,通常需要借助运行日志来监控和定位问题.其中,在日志中打印异常堆栈信息对于定位问题极为重要,因此,作为一名工程师,对打印异常堆栈应该不陌生.笔者在实践中曾遇到一个奇怪的现象: ...

  9. [Robot Framework] SikuliLibrary的关键字执行依赖java进程,但是上次的java进程如果没有杀掉,robot framework控制台的日志出不来,怎么办?...

    如果在suite的setup里面杀掉java进程:AutoItLibrary.Run | taskkill /F /IM java.exe 执行sikuli的关键字会报这样的错误: Connectio ...

最新文章

  1. TensorFlow+TVM优化NMT神经机器翻译
  2. 英语语法---动名词短语详解
  3. 打开高效文本编辑之门_Linux sed之模式空间与保留空间
  4. Spring 3 MVC异常处理程序
  5. WPF应用程序内嵌网页
  6. Java中解决继承和接口默认方法冲突
  7. D类IP地址和组播传输
  8. sql azure 语法_在Azure Data Studio中学习用于SQL Notebook的Markdown语言
  9. 从 0 开始搭建一个技术博客,私藏干货~
  10. 微信小程序在线预览PDF格式文件
  11. 软件测试面试必考的SQL语句
  12. 【stm32开发日志】步进电机、直线模组、丝杆的接线、编程与使用
  13. 干货分享:给视频翻译字幕可以用哪些软件?
  14. java 关于System类下的arraycopy方法
  15. 计算机组装模拟系统吗,怎么在线模拟组装电脑
  16. 不知道考研各科课程那个老师的课好?怎么选择安排?在哪找课程课本资料?看这里
  17. 物联网行业如何迎风飞扬
  18. 读书百客:《月夜》鉴赏
  19. curl打开网页403或者302的解决方法(详细总结)
  20. 【因缘际会】知乎APP的简单的产品体验报告

热门文章

  1. 海王小姐姐教你微信如何三步实现多开,win7 win 8 win10都可用
  2. scrum立会报告+燃尽图(第二周第七次)
  3. 为什么博图中放置按下按钮无反应_为什么点击了没反应,每个按钮都是
  4. mongodb的安装与配置
  5. python支持接口编程的好处_面向对象、接口编程的重要性 python 为什么引入接口interface...
  6. 新闻分类任务(LDA模型,多项分布朴素贝叶斯)
  7. 技术期刊 · 路尘终见泰山平 | 微前端及插件化架构在 Wix 的实践;编辑器架构的第二路径;业务中的前端组件化体系……
  8. 怎么调试S12X微控制器的XGATE上的软件
  9. deepstream6.1-YOLOv5部署
  10. hadoop基础----hadoop实战(七)-----hadoop管理工具---使用Cloudera Manager安装Hadoop---Cloudera Manager和CDH5.8离线安装