Java e.printStackTrace()异常信息怎么打印到log日志中

Java e.printStackTrace()异常信息怎么打印到log日志中Java e.printStackTrace()异常信息怎么打印到log日志中

大家好,又见面了,我是你们的朋友全栈君。

最近工作遇到一个问题是测试环境服务器上的日志打印不出错误出现在第几行,尤其是在出现反射或代理等的情况下使用e.getStackTrace方法不能打印出错误类型和错误行数。但是在控制台使用e.printStackTrace()却能打印出错误类型或错误行数,如空指针。

但是e.printStackTrace()方法只能使用在控制台中,那么我就想怎么把e.printStackeTrace的栈信息打印到日志中呢?

百度了一圈最后找到一位博友的方法很好:https://blog.csdn.net/hongweigg/article/details/18313461

ByteArrayOutputStream baos = new ByteArrayOutputStream();		
e.printStackTrace(new PrintStream(baos));
String exception = baos.toString();	
System.out.println("baos:" + exception);

这里使用了文件流,等同于把e.printStackTrace()的内容打印到一个文件中,然后再把内容付给一个字符串,最后就可以把logger.error(exception)把错误内容打印到日志上了。

这位网友也说明:

Exception.printStrackTrace()中虽然有出错点信息,但都打到控制台上去了,Exception.getStackTrace(),并不能获得出错点的提示信息。

        一个应对办法就是捕获e.printStrackTrace()输出, 使用e.printStackTrace(PrintStream)方法,将异常栈信息先输出到ByteOutputStream ,然后再将ByteOutputStream 转换为字符串,就获得了异常的完整输出。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106033.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm编译器设置_bash python

    pycharm编译器设置_bash python第一步:安装flake8运行cmd.exe,直接输入:pipinstallflake8安装完成后,用flake8-h检查是否安装成功第二步:配置打开pyCharm,在File->Settings->Tools->ExternalTools中点击“+”。Program:$PyInterpreterDirectory$/python Arguments:-mflake8–statistics$Pro…

    2022年9月13日
    2
  • string 转 map_一二段转奶的正确方法

    string 转 map_一二段转奶的正确方法String转Map方法很久没写java了,今天有个map传过来格式变成String了需要转map,本来应该可以找个简单的方式解决,但我就不相信找不到了,最后找了半天都没成功的。。。然后自己写了个小方法分享一下仅限以下格式转map{a=aaa,b=bbb,c=ccc,d=ddd,e=eee}publicstaticMap<String,Object>StringToMap(Stringparam){Map<String,Object

    2022年9月11日
    4
  • 用一份JAVA工程师的求职简历来说说求职简历怎么写[通俗易懂]

    用一份JAVA工程师的求职简历来说说求职简历怎么写[通俗易懂]这是一篇我比较想看到的简历指导的文章。但是我比较反对简历造假。我觉得会什么写什么把。Java就业指导  想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内容写到你的简历中,当然更需要的是你在面试的时候向面试官展示这些专业技能。相信此文…

    2022年9月23日
    2
  • Idea激活码永久有效Idea2019.1.4激活码教程-持续更新,一步到位

    Idea激活码永久有效Idea2019.1.4激活码教程-持续更新,一步到位Idea激活码永久有效2019.1.4激活码教程-Windows版永久激活-持续更新,Idea激活码2019.1.4成功激活

    2022年6月17日
    105
  • c# List去重

    c# List去重需求:对List集合中的元素去重。实现:有三种方式可以使用-使用Linq中distinct()方法-借助hashset-使用for循环遍历,这种方法在数据量大时,运行速度比较慢代码示例使用distinct()//使用distinct()List<string>lst1=newList<string>(){“as”,”lio”,”sdrf”,”asd”,”lio”};varr.

    2022年5月9日
    310
  • 很详细的解决Tomcat乱码问题

    很详细的解决Tomcat乱码问题解决Tomcat乱码问题一、问题提出二、乱码原因三级目录一、问题提出相信很多初始Tomcat的小伙伴都会遇到下面的情况,启动Tomcat是一大堆看不懂的文字,比如。。。相信很多有强迫症的同学,看到这些很不爽,我也是,接下来我就来说一下解决方案。二、乱码原因三级目录……

    2022年7月18日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号