티스토리 뷰

(1)의 예제에서는 메인 밖에서 에러가 발생될 경우에는 에러가 로그파일에 저장되지 않는다.
그래서 다음과 같이 변경해 주면 정상적으로 로그 파일에 저장할 수 있게 된다.

public class ExceptionEx {
public static void main(String args[])
{
PrintStream ps = null;
FileOutputStream fos = null;
try{
fos = new FileOutputStream("error.log", true);
ps = new PrintStream(fos);
System.setErr(ps);
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(0/0);
System.out.println(5);
} catch(Exception ee) {
System.err.println("---------------------");
System.err.println("예외발생시간 : " + new Date());
ee.printStackTrace(System.err);
System.err.println("예외메시지 : " + ee.getMessage());
System.err.println("---------------------");
}
System.out.println(6);
}
}

위 구문 때문에 err의 경우에는 error.log로 저장이 된다.

참조 : 자바의 정석
댓글