把异常信息存到文件中
代码:
import java.io.*;
class ExInfo
{
public static void main(String[] args)throws IOException//抛出new PrintStream("ex.txt")中异常
{
try
{
int[] arr = new int[2];
System.out.println(arr[3]);//角标越界异常
}
catch(Exception e)
{
e.printStackTrace(new PrintStream("ex.txt")); //改变默认输出异常
}
}
}
---------------------------------------------------------------------------------------------------------------------------------
把异常信息存到文件中(详细)
代码:
import java.io.*;
import java.util.*;//里面有时间的包
import java.text.*;//时间格式化的包
class ExInfo
{
public static void main(String[] args)
{
try
{
int[] arr = new int[2];
System.out.println(arr[3]);//角标越界异常
}
catch(Exception e)
{
try
{
Date d = new Date();//创建日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//创建日期格式对象
String s = sdf.format(d);//格式化日期,并赋给字符串
PrintStream ps = new PrintStream("exeception.log");//把异常输出到文件中
ps.println(s);//输出时间
System.setOut(ps);// 改变默认输出,把异常输出到文件中
}
catch(IOException ex)
{
throw new RuntimeException("日志文件创建失败");
}
e.printStackTrace(System.out); //输出异常
}
}
}
//网上有log4j 可以完成日志信息的建立
--------------------------------------------------------------------------------------------------------------------------------
输出系统信息
代码:
import java.util.*;
import java.io.*;
class SysInfo
{
public static void main(String[] args)throws IOException
{
Properties prop = System.getProperties();//创建系统信息对象
//System.out.println(prop);//无序输出系统信息在控制台
//prop.list(System.out);//有序输出在控制台
prop.list(new PrintStream("prop.log"));//有序输出到文件中
}
}
---------------------------------------------------------------------------------------------------------------------------
个人总结:把异常信息存储到文件中要改变默认输出, 首先创建PrintStream对象,使用
System.setOut()接收对象,把系统信息输出要创建Properties对象,获取System.getProperties()