java异常在控制台和日志里面的打印记录
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异常在控制台和日志里面的打印记录相关推荐
- java记录日志不打印控制台,java异常在控制台和日志里面的打印记录
1.e.printStackTrace()打印在哪里 在catch中的e.printStackTrace()将打印到控制台 2.e.printStackTrace()打印的内容是什么 import o ...
- JAVA//异常、断言和日志
1. 处理错误 1.2 异常分类 异常对象都是派生于 Throwable 类的一个实例.用户可以创建自己的异常类. Error 类层次结构描述了 Java 运行时系统的内部错误和资源耗尽错误. 应用程 ...
- Java异常持久化,Log4j进行日志的数据库持久化,说SQL语法异常。
Log4j进行日志的数据库持久化,说SQL语法错误... 在properties的配置中.... log4j.appender.db = org.apache.log4j.jdbc.JDBCAppen ...
- Java核心技术笔记 异常、断言和日志
<Java核心技术 卷Ⅰ> 第7章 异常.断言和日志 处理错误 捕获异常 使用异常机制的技巧 记录日志 处理错误 如果由于出现错误而是的某些操作没有完成,程序应该: 返回到一种安全状态,并 ...
- 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)...
接前一篇CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南,继续对ELK. logstash官方最新文档https://www.elastic.co/g ...
- java 异常 日志_java(异常和日志)
java异常看这篇就够了http://www.cnblogs.com/lulipro/p/7504267.html 1.类路径 所谓的类路径就是指程序运行时jvm要加载的类的.class文件所在地方 ...
- java异常及日志注意事项
java异常及日志注意事项 参考文章: (1)java异常及日志注意事项 (2)https://www.cnblogs.com/lq147760524/p/8475531.html 备忘一下.
- java 异常堆栈日志分析_Java 进阶之路:深入解读 Java 异常堆栈丢失原因
在应用程序的开发和维护中,通常需要借助运行日志来监控和定位问题.其中,在日志中打印异常堆栈信息对于定位问题极为重要,因此,作为一名工程师,对打印异常堆栈应该不陌生.笔者在实践中曾遇到一个奇怪的现象: ...
- [Robot Framework] SikuliLibrary的关键字执行依赖java进程,但是上次的java进程如果没有杀掉,robot framework控制台的日志出不来,怎么办?...
如果在suite的setup里面杀掉java进程:AutoItLibrary.Run | taskkill /F /IM java.exe 执行sikuli的关键字会报这样的错误: Connectio ...
最新文章
- TensorFlow+TVM优化NMT神经机器翻译
- 英语语法---动名词短语详解
- 打开高效文本编辑之门_Linux sed之模式空间与保留空间
- Spring 3 MVC异常处理程序
- WPF应用程序内嵌网页
- Java中解决继承和接口默认方法冲突
- D类IP地址和组播传输
- sql azure 语法_在Azure Data Studio中学习用于SQL Notebook的Markdown语言
- 从 0 开始搭建一个技术博客,私藏干货~
- 微信小程序在线预览PDF格式文件
- 软件测试面试必考的SQL语句
- 【stm32开发日志】步进电机、直线模组、丝杆的接线、编程与使用
- 干货分享:给视频翻译字幕可以用哪些软件?
- java 关于System类下的arraycopy方法
- 计算机组装模拟系统吗,怎么在线模拟组装电脑
- 不知道考研各科课程那个老师的课好?怎么选择安排?在哪找课程课本资料?看这里
- 物联网行业如何迎风飞扬
- 读书百客:《月夜》鉴赏
- curl打开网页403或者302的解决方法(详细总结)
- 【因缘际会】知乎APP的简单的产品体验报告
热门文章
- 海王小姐姐教你微信如何三步实现多开,win7 win 8 win10都可用
- scrum立会报告+燃尽图(第二周第七次)
- 为什么博图中放置按下按钮无反应_为什么点击了没反应,每个按钮都是
- mongodb的安装与配置
- python支持接口编程的好处_面向对象、接口编程的重要性 python 为什么引入接口interface...
- 新闻分类任务(LDA模型,多项分布朴素贝叶斯)
- 技术期刊 · 路尘终见泰山平 | 微前端及插件化架构在 Wix 的实践;编辑器架构的第二路径;业务中的前端组件化体系……
- 怎么调试S12X微控制器的XGATE上的软件
- deepstream6.1-YOLOv5部署
- hadoop基础----hadoop实战(七)-----hadoop管理工具---使用Cloudera Manager安装Hadoop---Cloudera Manager和CDH5.8离线安装