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


相关推荐

  • Python中通过PyPDF2实现PDF加密[通俗易懂]

    Python中通过PyPDF2实现PDF加密[通俗易懂]场景PyPDF2是一个纯pythonPDF库,能够分割、合并、裁剪和转换PDF文件的页面。它还可以向PDF文件中添加自定义数据、查看选项和密码。它可以从PDF检索文本和元数据,还可以将整个文件合并在一起。PyPDF21.26.0文档:https://pythonhosted.org/PyPDF2/实现使用pip安装pypddf2新建文件夹jiamiPDF新…

    2022年6月23日
    66
  • acwing-378. 骑士放置(最小独立集)

    acwing-378. 骑士放置(最小独立集)给定一个 N×M 的棋盘,有一些格子禁止放棋子。问棋盘上最多能放多少个不能互相攻击的骑士(国际象棋的“骑士”,类似于中国象棋的“马”,按照“日”字攻击,但没有中国象棋“别马腿”的规则)。输入格式第一行包含三个整数 N,M,T,其中 T 表示禁止放置的格子的数量。接下来 T 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出格式输出一个整数表示结果。数据范围1≤N,M≤100输入样例:2 3 0输出样例:4#include<b

    2022年8月10日
    3
  • C++:cstdio 头文件详解

    C++:cstdio 头文件详解&lt;cstdio&gt;(stdio.h)headerC库执行输入/输出操作:输入和输出操作也可以在C++实现,通过使用C标准输入和输出库(cstdio,在C语言中称为stdio.h)。这个库使用流来操作物理设备如键盘,打印机,终端或者系统支持的任何其他类型的文件。流是一种以统一的方式与这些交互的抽象; 所有流都具有相似的属性,与它们所关联的物理介质的各个特征无关。流…

    2022年10月23日
    0
  • js 比java还难_javascript与java哪个难「建议收藏」

    js 比java还难_javascript与java哪个难「建议收藏」javascript与java哪个难?答案是:JavaScript比Java更难。那么这是为什么?下面本篇文章就来给大家介绍一下,希望对大家有所帮助。原因:JavaScript有太多东西需要你自己去理解,这些东西里有很多要么Java已经给你做成范式了,你可以通过学习范式来理解;要么就是根本没有,无需理解。JavaScript需要在语言的基础上再整理一套方法论,这个过程会有不同流派。而Java基本上…

    2022年7月8日
    17
  • 【LDC1314】金属传感器(电感传感器)的调试技巧

    【LDC1314】金属传感器(电感传感器)的调试技巧调试使用的LDC1314传感器板和感应线圈是笔者根据TI官方手册设计的本文允许转载,转载须得到本人授权,并在文章顶部注明本博文地址我所使用的LDC1314传感器板和感应线圈下面开始介绍调试的步骤这次调试的标准是按照2016年江苏省大学生电子设计竞赛的寻铁丝小车的题目要求为准的。要求能够检测出细铁丝接近和硬币靠近产生的数值变化,笔者没有参加比赛,但是听…

    2022年6月7日
    32
  • DHCP 协议(二)「建议收藏」

    DHCP 协议(二)「建议收藏」DHCP的全名叫什么?(DynamicHostconfigurationProtocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作;主要有两个用途:(1)用于内部网或网络服务供应商自动分配IP地址;(2)给用户用于内部网管理员作为对所有计算机作中央管理的手段。功能简述:它主要是通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会…

    2022年5月23日
    36

发表回复

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

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