java异常信息日志输出

当程序运行异常时,e.printStackTrace()会打印出异常。但是很多时候我们希望将这些异常输出到日志中,以便日后可以随时查看到,可以通过这些异常快速的找到程序发生异常的代码。

那么有办法可以将异常的详细信息输出到文件吗?答案是肯定的。

程序:

public static String getTrace(Throwable t) {
StringWriter stringWriter= new StringWriter();
PrintWriter writer= new PrintWriter(stringWriter);
t.printStackTrace(writer);
StringBuffer buffer= stringWriter.getBuffer();
return buffer.toString();
} 

调用方法:

try(){
}catch(IoException e)
e.printStackTrace();
logger.error(getTrace(e)); //将异常输出到文件
} 

时间: 2024-10-15 05:01:53

java异常信息日志输出的相关文章

JAVA中自定义日志输出到指定文件

虽然JAVA日志包提供的功能已经很方便,但是假如我们有新的需求如:将日志文件保存到我们希望的位置并在日志文件名中添加日期且保存指定时间内的日志文件:按照自己希望的格式输出日志内容.对于这些需求我们只要扩展java.util.logging.StreamHandler(Handler的子类),java.util.logging.Formatter创建自定义的处理器及格式化器即可以实现.下面是个例子,它分别创建了Handler及Formatter的子类,以便实现将日志文件保存到我们需要的位置,及在日

Java 异常的捕获与处理详解 (一)

一,异常的产生(Exception) 异常是程序之中导致程序中断的一种指令流,异常一旦出现并且没有进行合理处理的话,那么程序就会中断执行. An exception is a flow of instruction that causes a program to interrupt in a propram. If an exception occurs and is not properly handled, the program is interrupted. (1)不产生异常的程序:

java 异常与捕获

几乎所有的代码里面都会出现异常,为了保证程序在出现异常之后可以正常执行完毕,就需要进行异常处理. 先来看一下异常的继承类结构: 所有的异常都是由Throwable继承而来,我们来看他下面的两个子类Error和Exception.Error类描述了Java运行时内部错误和资源耗尽错误.应用程序不抛出此类异常,这种内部错误一旦出现,除了告知 用户并使程序安全终止之外,再无能无力.这种情况很少出现.我们需要关心的是Exception以及其子类.在Exception之下又分为两个分支,RuntimeEx

StringWriter/PrintWriter在Java输出异常信息中的作用

闲来无事,看看JUnit的源代码.刚刚开始看就发现一段有趣的代码: public String trace() { StringWriter stringWriter = new StringWriter(); PrintWriter writer = new PrintWriter(stringWriter); thrownException().printStackTrace(writer); StringBuffer buffer = stringWriter.getBuffer(); r

Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息

1.1. 异常的处理模式exit  continue undo模式 1 1.2. 捕获所有异常使用        DECLARE continue HANDLER FOR   sqlexception 1 1.3. 捕获特定异常使用HANDLER FOR  errorcode 2 1.4. 记录异常到日志表,获取异常代码和异常信息 2 1.5. 抛出自定义异常 3 2. 程序语言中捕获sql自定义抛出的异常 3 2.1. 代码 3 3. 集合的循环loop while repeat模式 4 3.

JAVA之IO技术-将java程序的异常信息保存在文件中

package ioTest.io2; import java.io.FileNotFoundException; import java.io.PrintStream; import java.util.Properties; /* * 将应用程序的异常信息输出到指定的log文件中 */ public class ExceptionToFile { public static void main(String[] args) throws FileNotFoundException { int

JAVA中使用log4j及slf4j进行日志输出的方法

JAVA中输出日志比较常用的是log4j,这里讲下log4j的配置和使用方法,以及slf4j的使用. 一.下载log4j的架包,并导入项目中,如下: 二.创建log4j.properties配置文件 1.log4j配置文件的位置: (1)如果是java project项目,则在项目的根目录下创建log4j.properties而不是在src目录下. (2)如果是java web项目,则在src目录下创建log4j.properties配置文件,因为这个时候tomcat会去默认的加载这个配置文件,

Java学习-046-日志抓取合并后排序问题解决方案之 --- log4j 二次定制,实现日志输出添加延时10ms

自3月25至今,已经好久没有写学习日志了,今天在写日志抓取合并的小方法,发现抓取后的日志并米有依据系统执行的日志顺序排序.日志抓取排列逻辑如下: 通过日志标识,从各个日志文件(例如 use.log,error.log 等)中获取所需日志列表 合并日志列表 升序排序 输出日志报告 结果最后获取日志信息后,发现实际产出结果与预期结果不相符,如下所示: 1 2016-04-10 22:54:23,042 - INFO - [main] [cn.ffp.autotest.api.report.Repor

Python异常信息写日志

大家在开发的过程中可能时常碰到一个需求,需要把Python的异常信息输出到日志文件中网上的办法都不太实用,下面介绍一种实用的,从Python 2.7源码中扣出来的废话不说 直接上代码,代码不多,注释比较多而已 1 import sys, traceback 2 3 traceback_template = '''Traceback (most recent call last): 4 File "%(filename)s", line %(lineno)s, in %(name)s 5