Back-end/Java Language

System.out과 logging

prden 2021. 12. 5. 12:20

1. System.out과 logging

https://blog.silentsoft.org/archives/13

 

Logging을 System.out으로 하면 안되는 이유

운영 시스템에서 System.out으로 로그를 남기는 경우는 없다고 봐도 무방하다. 또, ‘Logging은 절대 System.out으로 하면 안 된다’고 생각하는 사람이 많다. 그런데 아이러니하게도 그 이유를 모르는

blog.silentsoft.org

요약

  • 에러/장애 발생 시 추적할 수 있는 최소한의 정보가 없다.
  • 최소한의 정보는 고사하고, 로그 내용을 가져오기 어렵다.
  • 누가 봐도 System.out.println은 콘솔에 로그를 출력하는 API이다.
  • 성능저하 원인이 될 수 있다. -> 참고 (https://junghyungil.tistory.com/160)

2. Log4j 와 slf4j

https://sjh836.tistory.com/161

 

Log4j 와 slf4j (maven 설정, commons-logging, appender, logger, layout)

참조문서 : https://logging.apache.org/log4j/2.x/ 1. log4j 란? log for java 의 약자로서 로깅을 위한 라이브러리이다. 로깅 라이브러리를 별도로 사용하지 않는다면, system.out.println()으로 할 것이다...

sjh836.tistory.com

요약

  • spring에서 기본적으로 사용하는 commons-logging을 exclution처리
  • slf4j-log4j12를 추가
  • log4j-core를 추가 

 

3. log4j의 로그레벨

위에서부터 심각한 정도

  • FATAL : 아주 심각한 에러가 발생한 상태
  • ERROR : 요청을 처리하는 중 문제가 발생한 상태
  • WARN : 처리 가능한 문제이지만, 향후 에러의 원인이 될 수 있는 상태
  • INFO : 로그인, 상태변경과 같은 정보성 메세지
  • DEBUG : 개발시 디버그 용도로 사용
  • TRACE : 디버그 레벨이 너무 광범한 것을 해결하기 위해서 좀 더 상세한 상태를 나타냄
  • https://yunyoung1819.tistory.com/30
 

스프링 로그 레벨 (Level)

스프링 로그 레벨 (Level) - 로깅(Logging) - 로그(Log)란 프로그램 개발이나 운영 시 발생하는 문제점을 추적하거나 운영 상태를 모니터링하기 위한 텍스트이다. - 지금까지는 System.out.println(); 문을 사

yunyoung1819.tistory.com

  • INFO로 셋팅하면, INFO, WARN, ERROR, FATAL은 기록된다.
  • TRACE > DEBUG > INFO > WARN > ERROR > FATAL

 

 

4. log4j의 Appender 종류

Appender 는 로그의 출력 위치를 지정해준다.

  • ConsoleAppender : 콘솔에 출력
  • FileAppender : 파일에 출력
  • RollingFileAppender : 조건에 따라 파일에 출력
  • DailyRollingFileAppender : 매일 조건에 따라 파일에 출력
  • JDBCAppender : RDB 테이블에 출력

출처: https://sjh836.tistory.com/161 [빨간색코딩]

 

https://twofootdog.tistory.com/52

 

스프링부트에 log4j2 적용하기(gradle, log4j2.yml 활용)

이번 글에서는 스프링부트 서비스에서 gradle과 log4j2.yml 파일을 활용하여 log4j2 설정을 진행할 것이다. log4j2는 늘 사용하지만 한번 글로 정리가 필요할 것 같아서 정리해보았다. 설정을 진행하는

twofootdog.tistory.com

 

5. Log4j & Logback & Log4j2차이

https://jeonyoungho.github.io/posts/Log4j%EC%99%80-Logback%EA%B3%BC-Log4j2%EC%9D%98-%EC%B0%A8%EC%9D%B4/

 

[개발자 블로그] Log4j & Logback & Log4j2의 차이

Log4j&Logback&Log4j2의차이 log4j 콘솔로 출력하는 stdout 외에도 파일 출력도 제공한다. 하지만 2015년에 개발이 중단되었기 때문에 기존 시스템이 아니라면 사용할 이유가 없다.

jeonyoungho.github.io

 

'Back-end > Java Language' 카테고리의 다른 글

ThreadLocal  (0) 2022.03.18
instanceof, java  (0) 2022.03.17
스트림(stream)  (0) 2021.10.13
변수명 짓는 방법  (0) 2021.09.17
@SuppressWarnings  (0) 2021.09.08