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 ...
最新文章
- android的WindowManager.addView弹窗添加
- 神策数据招募优秀的解决方案销售和售前
- js移除某个class_用JS添加和删除class类名
- .NETFramework-Web.Mvc:ViewResult
- 【51项目】电子密码锁设计
- 超棒的30款JS类库和工具
- spring aop示例_Spring批处理示例
- Vue学习笔记(七)
- off cpu linux,宋宝华: 用off-cpu火焰图进行Linux性能分析
- python操作wps表格_python3怎么用pandas读wps表格,pandas python教程
- 使用nvim来代替VSCode,神操作
- 混沌工程(Chaos Engineering) 到底是什么?
- Mac 谷歌浏览器chrome恶意插件劫持Any search(TotalSearchToolbox)处理
- vim 怎么显示空格_vi查看空格、制表符等特殊符号
- linux常用命令大全,建议收藏
- mapbox-gl:图层过滤显示
- linux红帽7安装samba服务器
- 数据结构之你没见过的排序算法!
- udevinfo__ udevadm info
- 斯坦福cs231n虚拟环境搭建详细教程,内含资源下载
热门文章
- 解决vscode红色波浪线的ts报错:找不到模块“store” ts(2307),不识别@别名路径
- AE圣诞树(html版本),免费
- can't find lxxx解决办法
- 欧拉角变化率和机体角速度的关系
- 最新蓝奏云软件库系统源码分享下载+非WebView
- js的lambda表达式
- 自建WIFI热点传输应用评测: 还在用蓝牙传文件?你OUT了
- [静态时序分析简明教程(三)]备战秋招,如何看懂一个陌生的timing report
- 8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法
- 微信商户号25位招商银行号