打印异常信息到日志

当程序运行异常时,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-11-06 07:39:29

打印异常信息到日志的相关文章

python中利用tracekback跟踪栈以及打印异常信息

?##sys.exc_info() 返回 (type, value, traceback). type为异常类型, value为异常的参数(通常为异常错误的信息), traceback为跟踪回溯的对象. exc_type, exc_value, exc_traceback = sys.exc_info() print "*** print sys.exc_info:" print 'exc_type is: %s, exc_value is: %s, exc_traceback is:

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

Spring MVC异常统一处理(异常信息的国际化,日志记录)

JAVA EE项目中,不管是对底层的数据操作,还是业务层的处理过程,还是控制层的处理,都不可避免的会遇到各种可预知的(业务异常主动抛出).不可预知的异常需要处理.一般dao层.service层的异常都会直接抛出,最后由controller统一进行处理,每个过程都单独处理异常,且要考虑到异常信息和前端的反馈,代码的耦合度高,不统一,后期维护的工作也多. 同时还必须考虑异常模块和日志模块.国际化的支持. 因此需要一种异常处理机制将异常处理解耦出来,这样保证相关处理过程的功能单一,和系统其它模块解耦,

JSP 500页面的异常信息打印

web开发中异常信息是很重的信息,对开发人员是其相当重要的,对这些异常信息进行转换为用户能理解的信息就更重要了~ 在单纯的JSP开发中,处理异常信息一般使用web.xml来定义. 01 <error-page> 02          <error-code>400</error-code> 03          <location>/400.html</location> 04      </error-page> 05 06  

日志如何打印异常堆栈信息。

package com.doctor.slf4j; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 如何打印异常堆栈信息. * @author doctor * * @time 2014年12月11日 上午9:49:00 */ public class LogThrowableRule { private final Logger log = LoggerFactory.g

java异常信息日志输出

当程序运行异常时,e.printStackTrace()会打印出异常.但是很多时候我们希望将这些异常输出到日志中,以便日后可以随时查看到,可以通过这些异常快速的找到程序发生异常的代码. 那么有办法可以将异常的详细信息输出到文件吗?答案是肯定的. 程序: public static String getTrace(Throwable t) { StringWriter stringWriter= new StringWriter(); PrintWriter writer= new PrintWr

Slf4j打印异常的堆栈信息

1.前言 直接用logger.info("异常信息为:"+e)或者logger.info(e.getMessage())只能记录到异常的描述信息,却没有其异常具体发生在哪一行代码.这样即使通过日志发现出现了异常,也没法马上定位问题.因此就催生了一个想法,打印日志是否能像在IDE本地跑程序时出现未捕获的异常时,控制台能打印出完整的错误堆栈信息. 原文地址:https://www.cnblogs.com/gavincoder/p/10092187.html

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.

python打印详细的异常信息

#!/usr/bin/env python #coding=utf-8 import traceback try: 1/0 except Exception, e: print e print traceback.format_exc() python打印详细的异常信息,布布扣,bubuko.com