예외발생 log 출력

Study/JAVA 2014. 10. 14. 12:44

Syste.out, System.err은 System클레스위 static멤버로서 프로그램의 어디에서나 사용할 수 있다. System.err은 System.out와 마찬가지로 기본적으로 출력방향이 화면을 ㅗ되어 있어서, setErr메서드를 이용해 출력방향을 변경한다.

 

 아래의 예제에서 setErr메서드를 이용해서 System.err의 출력방향을 error.log라는 이름의 파일로 변경한다. 출력방향이 변경되었기 때문에, System.err의 println메서드나 print메서드를 이용해서 출력하는 내용은 error.log파일에 저장된다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package Ex14;
 
import java.io.*;
import java.util.*;
 
public class ExceptionX {
 
    public static void main(String args[]) {
        PrintStream ps = null;
        FileOutputStream fos=null;
        try {
            fos = new FileOutputStream("error.log",true); // error.log파일에 출력할 준비를 한다.
            ps=new PrintStream(fos); // err의 출력을 화면이 아닌, error.log파일로 변경한다.
            System.setErr(ps);
            
            System.out.println(1);            
            System.out.println(2);
            System.out.println(3);
            System.out.println(0/0);    // 예외발생!!!
            System.out.println(4);         // 실행되지 않는다.
        } catch (Exception ae)    {
            System.err.println("-----------------------------------");
            System.err.println("예외발생시간 : " + new Date());  // 현재시간출력
            ae.printStackTrace(System.err);
            System.err.println("예외메시지 : " + ae.getMessage());
            System.err.println("-----------------------------------");
        }    // try-catch의 끝
 
        System.out.println(6);
    }    // main메서드의 끝
}
 







'Study > JAVA' 카테고리의 다른 글

agruments으로 파일이름 입력받아 생성하기  (0) 2014.10.15
추상클래스 Vs 인터페이스  (0) 2014.10.13
Equals 메서드  (0) 2014.10.13
java FILO(2)  (0) 2014.10.13
java FILO(1)  (0) 2014.10.13
Posted by 차희빈

차희빈

달력