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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 发送邮件的几种方式[通俗易懂]

    Java 发送邮件的几种方式[通俗易懂]发送文件的项目地址(free):https://download.csdn.net/download/qq_36474549/10741073导入jar包:activation-1.1.jar  javax.mail-1.6.2.jar内容:1.发送一封只包含文本的简单邮件   SendEmail_text.java      2.发送包含内嵌图片的邮件   Send…

    2022年5月14日
    36
  • slam技术研究现状_SLAM uav

    slam技术研究现状_SLAM uav导语:被很多学者认为是实现真正全自主移动机器人关键的SLAM技术,已经开始逐步走入人们的视野,过去几年扫地机器人的盛行让它名声大燥,而AGV、无人机等行业的兴起则让其找到了更加广阔的市场。今天,我们就来聊一聊现下大热的SLAM技术。被很多学者认为是实现真正全自主移动机器人关键的SLAM技术,已经开始逐步走入人们的视野,过去几年扫地机器人的盛行让它名声大燥,而AGV、无人机等行业的…

    2022年10月1日
    2
  • SSDP协议基础_最核心的协议

    SSDP协议基础_最核心的协议http://net.zdnet.com.cn/network_security_zone/2010/0715/1814422.shtmlSSDP协议,不知道大家是否听说过呢?这个协议的使用多出现在端口当中。下面我们就来了解一下这个协议的具体内容吧。什么是SSDP协议呢?SS

    2022年10月11日
    4
  • java calendar和date_java calendar获取年月日

    java calendar和date_java calendar获取年月日java中的Calendar类为什么起个名字就叫做日历呢?因为这个类可以让我们像看日历一样得到这个时间的所有属性,你还在为不知道2014年5月7日是周几而苦恼吗?你还在为2005年8月14日是8月的第几周而发愁吗?快来试一试Calendar吧。Calendar的常用属性属性作用YEAR年份MONTH月份DATE同DAY_OF_MONTH,日期DAY_…

    2022年9月23日
    3
  • TP5 关联模型使用(嵌套关联、动态排序以及隐藏字段)

    TP5 关联模型使用(嵌套关联、动态排序以及隐藏字段)

    2021年11月7日
    41
  • 正则表达式Python_js正则表达式实例

    正则表达式Python_js正则表达式实例正则表达式详解正则表达式英文名称叫RegularExpression简称RegEx,是用来匹配字符的一种工具,它常被用在网页爬虫,文稿整理,数据筛选等方面,最常用的就是用在网页爬虫,数据抓取。一、正则表达式的各种符号解释(来自维基百科)~~~是不是感觉太多了,因此我将常用的整理出来了二、进行逐个详解1.首先导入模块importre2.匹配多种可能使用[]…

    2022年10月3日
    2

发表回复

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

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