본문 바로가기

Spring

[Spring] 로그 출력하기

 

스프링 컨테이너가 제공하는 로그를 콘솔에 출력하기 위해서는 log4j2.xml 파일을 작성해야 한다.

 

src/main/resources 소스 폴더에 오른쪽 마우스를 클릭한 후 [ New ] → [ Other ] 를 선택한다.

 

그리고 아래쪽에 XML 폴더에 있는 [ XML File ] 을 선택하고 <Next> 버튼을 클릭한다.

 

 

파일 이름으로 log4j2.xml을 입력하고 <Finish> 버튼을 클릭하면 src/main/resources에 log4j2.xml 파일이 생성된다.

 

 

이제 생성된 log4j2.xml 파일에 다음과 같은 내용을 입력한다.

 

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>

</Configuration>

로그 설정에서 중요한 것은 <Appender>와 <Logger> 두 가지다.

 

먼저 <Appender>는 어디에 어떤 패턴으로 로그를 출력할지 결정해 준다.

 

로그 메시지는 크게 콘솔, 파일, 데이터베이스에 출력할 수 있는데 위 설정에서는 <Console> 엘리먼트를 사용했기 때문에

콘솔에 로그 메시지를 출력한다.

 

그리고 <Console>은 <PatternLayout>을 사용하여 출력되는 로그의 패턴도 지정할 수 있다.

 

 

두 번째로 중요한 설정이 <Logger>인데 <Logger>는

 

로그 메시지를 <Appender>로 전달하여 실질적으로 <Appender>가 로그를 출력하도록 한다.

 

<Logger name="egovframework" level="DEBUG" additivity="false">
      <AppenderRef ref="console"/>
</Logger>

 

위 설정에서 <Logger>는 egovframework 패키지로 시작하는 로그를 console이라는 이름의

 

<Appender>를 이용하여 콘솔에 출력하라는 설정이다.

 

여기에서 중요한 것이 <Logger>의 level 속성인데 로그 레벨은 5가지( DEBUG, INFO, WARN, ERROR, FATAL )러 지정할 수 있다.

 

만약 WARN으로 지정했다면 WARN 이상의 레벨인 WARN, ERROR, FATAL 로그가 모두 출력된다.

 

따라서 일반적으로 개밸 단계에서는 DEBUG나 INFO로 설정하지만 운영 단계로 넘어가면 WARN이나 ERROR로 설정한다.

 

 

이제 로그 관련 설정을 저장하고 클라이언트 프로그램인 SampleServiceClient를 다시 실행한다.

 

그러면 다음과 같이 콘솔에 실행 결과와 로그 메시지가 출력된다.