java记录日志不打印控制台,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 zero
at 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 zero
at 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基础巩固(二)异常,多线程,线程池,IO流,Properties集合,IO工具类,字符流,对象流,Stream,Lambda表达式
一.异常,多线程 学习目标 : 异常的概述 异常的分类 异常的处理方式 自定义异常 多线程入门 1 异常的概述 1.1 什么是异常? 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程 ...
- java通过异常处理错误,java基础之通过错误处理异常
我们在编程过程中,通常需要时刻关注可能遇到的问题,此时可以把问题分为两类:普通问题与异常问题.普通问题:我们可以通过从当前环境中获取到的信息来解决这个问题:而异常问题:在当前环境中获取到的信息并不能解 ...
- Java核心技术笔记 异常、断言和日志
<Java核心技术 卷Ⅰ> 第7章 异常.断言和日志 处理错误 捕获异常 使用异常机制的技巧 记录日志 处理错误 如果由于出现错误而是的某些操作没有完成,程序应该: 返回到一种安全状态,并 ...
- JAVA day24,25,26 异常(try、catch、finally、throw、throws),线程(Thread、Runnable、Callable)
一.异常 异常 :指的是程序在执⾏过程中,出现的⾮正常的情况,最终会导致JVM的⾮正常停⽌. 在Java等⾯向对象的编程语⾔中,异常本身是⼀个类,产⽣异常就是创建异常对象并抛出了⼀个 异常对象.Jav ...
- 4.1_[Java 输入输出]-全网最全 Java 控制台输入输出
################################################## 目录 调用 Java Scanner API 输入接口 什么是 Java API 导入 Scann ...
- Java基础 Stream流方法引用异常文件
Stream流 引例 需求:按照下面要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 1. 把所有以"曹"开头的元素存储到新集合中 2. 把曹开头,长度为3的元素存储到新 ...
- java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用
Java未被捕获的异常 在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public st ...
最新文章
- python一点基础都没有的怎么办-你们都是怎么学 Python 的?
- 寻找U2OS中表达的基因及其promoter并用于后续annotation
- 【Linux部署】Spring Boot 项目部署在Linux环境下的Docker容器内举例【任务调度系统 xxl-job 任务调度中心】(手动版)
- Pygame 使用Djkstra广度搜索寻找迷宫(相对)最短路径
- iOS开发Item属性总结
- TortoiseSVN搭建本地版本库及简单操作使用
- python基础教程视频-Python基础视频教程全集
- 设计模式之GOF23工厂模式02
- datatable自定义表单或者导出excel按钮,搜索
- jumpserver 账户被锁定30分钟后_175斤女孩嫌腰粗,每天坚持跳绳30分钟,3个月后令丈夫刮目相看...
- webstorm软件使用汉化包
- hp 官方没有针对 mac 的显示器驱动
- 计算机作文600字关于科学事业,关于科学的作文600字(精选11篇)
- 适合研发团队的几个项目管理软件对比
- EXCEL和公式里的 通配符
- 自然语言处理入门学习笔记3:词向量
- PointNet++等3D点云中用到的.cu、.cpp文件的编译的简单理解
- 如何正确选择ARM核心板、ARM工控板的存储类型?
- 知识图谱构建之二:从结构化数据到知识图谱
- php 下载 网站 文件,php中下载网站文件
热门文章
- x射线管的kV、mA、mAs
- div+CSS浏览器兼容问题整理(IE6.0、IE7.0 ,ie8 , FireFox...)
- CUDA11.3以及PyTorch-GPU版本安装
- cf #818 Div.2(A~C)
- mysql HA方案: MHA
- 行车记录仪开发方案比较--转载
- Linux操作系统——切换到root用户及其他用户
- 最新微信8.0.1抢红包神器-亲测2021年2月11日可用-安卓IOS
- jquery可爱的小黑猫
- 自学第一天-阿里云服务器ESC