웹 개발

log4j로 printStackTrace 출력

노루아부지 2020. 12. 12. 20:49

아래 코드에서는 Null Pointer Exception이 발생합니다.

이 예외를 try catch문으로 printStackTrace를 하면 에러 메시지가 표시됩니다.

 

public class Test {
    public static void main(String [] args) {
        String a = null;

        try {
            if(a.equals("")) {
                System.out.println("####");
            }
        }
        catch(Exception e)  {
            e.printStackTrace();
        }
    }
}

 

이렇게 표시할 경우 tomcat 로그에서 error로그에 기록됩니다. 이것의 문제는, 일반 로그와 error로그가 다른 파일에 따로 기록된다는 것입니다.

이렇게 될 경우, 이력 추적이 어렵습니다.

따라서 이력 추적을 용이하게 하기 위해서 error로그를 일반 로그처럼 기록해야 하는데 방법은 아래와 같습니다.

 

이럴 때는 아래와 같이 하면 됩니다.

public static void main(String [] args) {
    String a = null;

    try {
        if(a.equals("")) {
            System.out.println("####");
        }
    }
    catch(Exception e){
        log.error("error", e);
    }
}
728x90
loading