JAVA

(Java) 로그관리! Logger 사용 이유 및 설정 방법

쿠카이든 2022. 3. 27. 15:57
728x90

개발자라면 꼭 필요한 Logger를 통한 로그관리 방법과 사용하는 이유 및 설정방법을 알아보자 !

  • 먼저 사용방법은 간단하다.
  • 로깅 라이브러리는 @slf4j 을 사용하여 내가 로그를 남길 컨트롤러 클래스에 선언을 해주고 메소드 내에서 사용하면 된다.
@slf4j
public class MainController(){
    private final Logger LOGGER = LoggerFactory.getLogger(MainController.class.getName());
    
    public void moveMainPage(){
        LOGGER.info("Hello world!");
    }
}

 

  • 그럼 다음과 같이 콘솔창에 찍힐 것이다(자세한 정보가 함께 출력!!)

LOGGER.info("Hello world!")

(참고로 로그 레벨은 TRACE > DEBUG > INFO > WARN > ERROR 이다.)

 

  • 아래처럼 기존의 System.out.println 에 익숙한 사람들에게는 logger를 굳이 써야할 필요를 못느낄 수 있다.

System.out.println("Hello world!")

 

  • 하지만 위 콘솔에 출력된 것을 보면 차이를 확실히 알 수 있다.
  • System.out으로 로그를 찍을 경우 에러발생 시 추적할 수 있는 최소한의 정보가 없다.
  • 따라서, 단순히 로깅을 떠나 협업하는 개발자들을 위해 System.out은 지양하고 더 자세한 정보를 제공하는 로깅 라이브러리를 사용해야 할 필요가 있다.

 

(참고) 그렇다면 로그 설정은 어떻게 하는가 ?

log4j2.xml을 생성한 후 내가 로그를 찍을 클래스의 경로를 다음과 같이 입력하면 된다.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %5p [%c] %m%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="egovframework.ECALL_O.main.web" level="INFO" additivity="FALSE">
            <AppenderRef ref="console" />
        </Logger>
    </Loggers>
</Configuration>


출처: https://haenny.tistory.com/3 [Haenny]

728x90