e.printStackTrace()打印在哪里以及如何e.printStackTrace()的内容打印在日志中

摘要:
用logger.error;也是输出这种大概的错误信息。再见如下代码:packagemyProject;importorg.apache.logging.log4j.LogManager;importorg.apache.logging.log4j.Logger;publicclassExceptionTest{privatestaticfinalLoggerlogger=LogManager.getLogger();publicvoidtest(){try{inti=1/0;}catch{logger.error;}}publicstaticvoidmain{ExceptionTesttest=newExceptionTest();test.test();}}用logger.error;,则输出结果如下:19:20:32.948[main]ERRORmyProject.ExceptionTest-ExceptionTestException:java.lang.ArithmeticException:/byzeroatmyProject.ExceptionTest.test[classes/:?]这和e.printStackTrace()打印的内容大致是相同的。

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

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

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

如下代码:

importorg.apache.logging.log4j.Logger;

public classExceptionTest {
    private static final Logger logger=LogManager.getLogger(); 
    public voidtest() {
        try{
            int i=1/0;
            
        }catch(Exception e){    
            e.printStackTrace();
        }
    }
    public static voidmain(String[] args) {
        ExceptionTest test= newExceptionTest();
        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()的信息打印在日志里应该怎么做呢?

见如下代码:

packagemyProject;

importorg.apache.logging.log4j.LogManager;
importorg.apache.logging.log4j.Logger;

public classExceptionTest {
    private static final Logger logger=LogManager.getLogger(); 
    public voidtest() {
        try{
            int i=1/0;
            
        }catch(Exception e){    
            logger.error(e);
        }
    }
    public static voidmain(String[] args) {
        ExceptionTest test= newExceptionTest();
        test.test();
        
    }
    
}

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

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

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

再见如下代码:

packagemyProject;

importorg.apache.logging.log4j.LogManager;
importorg.apache.logging.log4j.Logger;

public classExceptionTest {
    private static final Logger logger=LogManager.getLogger(); 
    public voidtest() {
        try{
            int i=1/0;
            
        }catch(Exception e){    
            logger.error("ExceptionTest Exception:",e);
        }
    }
    public static voidmain(String[] args) {
        ExceptionTest test= newExceptionTest();
        test.test();
        
    }
    
}

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

19: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()打印的内容大致是相同的。

免责声明:文章转载自《e.printStackTrace()打印在哪里以及如何e.printStackTrace()的内容打印在日志中》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Charles 手机抓包HTTPS设置以及证书安装Android 简单UDP发送接收下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

nginx 反向代理

nginx反向代理Docker部署Apache服务Docker部署nginx服务修改nginx侦听和转发配置Docker部署Apache服务创建Dockerfile,编写以下内容,并执行dockerbuild-tv4/Apache创建v4/apacheimage。修改后,执行nginxsroad以重新加载服务测试请求/品种请求/caesar...

docker run hangs问题排查记录

1.故障描述过去两天遇到了一个非常奇怪的问题。现在完整的故障描述如下:1)首先,我的同事告诉我,K8S集群中的一个工作节点将其状态更改为NoReady,并且在节点kubelet_truntime的错误日志中发现了大量此类日志E060301:50:51.45511776268remote。go:332]ExecSync1f0e3ac13faf224129bc4...

ES基本查询总结

ES与数据库比较查询操作Elasticsearch中当我们设置Mapping完毕后,就可以按照设定的方式导入数据。以下内容的原文需要参考ES官方文档1、结构化检索针对字段类型:日期、时间、数字类型,以及精确的文本匹配。结构化检索特点:*1)结构化查询,我们得到的结果总是非是即否,要么存于集合之中,要么存在集合之外。term查询是简单的,它接受一个字段名以及我...

nginx 浏览php的时候会变成下载

php的时候会变成下载:这是因为nginx没有设置好碰到php文件时,要传递到后方的php解释器。当然啦,你的php-fpm解析器也需要正常运行,并监听好9000端口,才能最终生效并有效处理php脚本。windows下开启监听的办法,php-cgi.exe-b127.0.0.1:9000-cphpphp.ini待续:。。。。。...

firefox插件-HackBar介绍与试用

HackBar实际上是一个包含一些黑客常用工具的小工具包。它的主要目的是帮助开发人员对代码进行安全审计优点是:-MD5/SHA1/SHA256哈希MySQL/MSSQLServer/Oracle快捷方式XSSulfunctions文本区域的URL重定向不会受到影响-MD5/SHA1/SHA 256哈什排列等-MySQL/MMSQLServer/Oacle快捷...