java - Try-catch 에러 log파일에 출력

imjingu·2023년 9월 10일
0

개발공부

목록 보기
465/481
package chapter20230907.Exception;
import java.io.FileOutputStream;
import java.io.PrintStream;

public class ExceptionTest06 {

	public static void main(String[] args) {
		PrintStream ps = null; // 파일 error.log에 출력할 준비
		FileOutputStream fos = null; // 파일 저장을 위해
		
		try {
			fos = new FileOutputStream("./output_file/error.log");
			ps = new PrintStream(fos);
			
			System.out.println(1);
			System.out.println(2);
			System.out.println(3);
			System.out.println(0/0); // 예외발생
			System.out.println(4); // 실행되지 않는다
		}
		catch (Exception ae) {
			ae.printStackTrace(ps);
			ps.println("예외 메시지 : " + ae.getMessage()); // 화면대신 error.log파일에 출력한다
		} // try-catch의 끝
		System.out.println(6);
	}
}


package chapter20230907.Exception;
import java.util.*;
import java.io.FileOutputStream;
import java.io.PrintStream;

public class ExceptionTest07 {

	public static void main(String[] args) {
		PrintStream ps = null; // 파일 error.log에 출력할 준비
		FileOutputStream fos = null; // 파일 저장을 위해
		
		try {
			fos = new FileOutputStream("./output_file/error.log", true); // error.log 파일에 출력할 준비를, true - 에러 발생할때마다 덮어쓰지않고 밑에 추가로 작성
			ps = new PrintStream(fos); // err의 출력을 화면이 아닌, error.log파일로 변경한다
			System.setErr(ps); // 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("------------------------------------------------"); // err로 에러 기록을 error.log 파일에 출력
			System.err.println("예외 발생시간 : " + new Date()); // 현재시간출력
			ae.printStackTrace(System.err);
			System.err.println("예외 메시지 : " + ae.getMessage()); // 현재시간출력
			System.err.println("------------------------------------------------");
		} // try-catch의 끝
		System.out.println(6);
	}

}

0개의 댓글