MapleStory Cookie With Halo

☕ JAVA/☕ Library & Pattern

[JAVA]간단한 Logging 사용법

뉴이 NUEY 2025. 3. 2. 22:23
반응형

 

※ 실무에서는 System.out.print*를 거의 사용하지 않는다. 로깅 라이브러리를 사용해서 로그를 출력한다.

 

 

  • SLF4J https://www.slf4j.org/
    • 인터페이스.

    • 구현체로 Logback, Log4J, Log4J2 등을 제공한다.

  • Logback https://logback.qos.ch/
    • 스프링 부트에서 기본으로 제공.

    • 따라서 대부분 로그백을 사용하는 추세이다.



 

로그 선언

 

  1. private final Logger log = LoggerFactory.getLogger(getClass());
    이 부분은 클래스에서 제일 윗단에 존재하며 항상 동일하게 작성한다.
    • code
      참고로 간단히 사용해보기 위해 RestController를 사용한 것으로 딱히 의미는 없다.
      클래스명.class 든 getClass()든 사용하면 된다.
    • LoggerFactroy.getLogger(여기) 안에 해당 클래스가 들어와야 한다.

    • Logger를 import할 때 org.slf4j 로 호출해야 한다.

 

logging 기능

 

 

  • 시스템 출력과 차이를 비교해보겠다.

    • 출력결과
    • 시스템 출력은 단순히 출력되었지만, 로그는 적은 것 외에도 정보가 추가되어 출력되었다.

    • 시간 INFO 프로세스 넘버 --- [프로젝트이름] [쓰레드] 클래스위치          : 지정한 내용 출력


  • 다른 로깅 함수들
    code
    출력

    • trace → 상세한 정보 기록용

    • debug   디버깅 용도

    • info   중요 정보

    • warn     경고

    • error     문제

    • trace가 심각도 최하위이고, error로 갈수록 심각도가 높다.


  • 모든 로그를 보고 싶은 경우
    • application.properties를 설정하면 된다.
      로깅레벨을 설정하는 것.
    • 운영서버에서는 info레벨로 많이 설정한다.

    • logging.levle.root=debug 로 설정하면 프로젝트의 모든 수 많은 로그를 볼 수 있다. (비권장)


  • 로그를 출력할 때 

    log.trace("trace log={}", 변수명);

    이 형태를 무조건 지켜야 한다.

    ※ 만약 +를 사용하면 자바 연산이 일어나므로 절대 금지


  • 장점
    • 설정을 하면 console뿐 아니라 파일이나 네트워크 등 별도의 위치에 남길 수 있다.
      또한 파일로도 남기는데 용량에 따라 분할까지 가능하다.

    • 용량도 System.out.*보다 덜차지 하고 좋다.

 

Lombok에서 제공하는 애노테이션 @Slf4j  사용하면
logger 선언 필요 없이 바로 log를 사용할 수 있다.

 


※ 참조 : https://www.inflearn.com/roadmaps/373

반응형