将异常的详细信息输入到日志

转载:http://blog.sina.com.cn/s/blog_62c89b450100hod1.html

当程序运行异常时,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)); //将异常输出到文件

}


类似参考:

http://blog.csdn.net/mayuanxiaonong/article/details/23947247

http://blog.csdn.net/menghuannvxia/article/details/52400365

Java中可以使用java.util.logging标准日志框架将报错信息输出到日志文件中。具体实现方法如下: 1. 创建Logger对象 ```java private static final Logger LOGGER = Logger.getLogger(YourClassName.class.getName()); ``` 2. 在代码中使用Logger对象记录错误信息 ```java try { // your code here } catch (Exception e) { LOGGER.log(Level.SEVERE, "An error occurred", e); } ``` 在上面的代码中,Level.SEVERE 表示记录严重错误信息,"An error occurred" 是错误信息的描述,e 是捕获到的异常对象。 3. 在配置文件中设置日志输出 ```properties handlers= java.util.logging.FileHandler java.util.logging.FileHandler.pattern = /path/to/log/file.log java.util.logging.FileHandler.level = ALL java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter ``` 在上面的配置文件中,/path/to/log/file.log 是你想要输出日志的文件路径。你也可以在代码中设置日志输出路径,如下所示: ```java Handler fileHandler = new FileHandler("/path/to/log/file.log"); LOGGER.addHandler(fileHandler); ``` 这样,在代码中的所有错误信息都会被记录到日志文件中,包括异常的堆栈信息。如果你想要更详细的堆栈信息,可以在配置文件中将日志级别设置为ALL。 ```properties java.util.logging.FileHandler.level = ALL ``` 这样可以记录所有日志信息,包括FINE、FINER和FINEST级别的信息。当然,在生产环境中,我们通常只记录SEVERE、WARNING和INFO级别的信息,以避免日志文件过大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值