Logging 서비스

개요

전자정부 표준프레임워크 3.0부터는 다양한 Logging Framework와 연계할 수 있도록 SLF4J를 도입하였고,
Logging 구현체는 Log4j 2를 이용하여 Logging을 수행한다.

Logging 서비스는 시스템의 개발이나 운용시 발생할 수 있는 사항에 대해서,
시스템의 외부 저장소에 기록하여 시스템의 상황을 쉽게 파악할 수 있도록 도와준다.
뿐만 아니라 테스팅 코드와 운영 코드를 동일하게 가져가면서 로깅을 선언적으로 관리할 수 있다.
과도한 Logging은 운영시 성능 오버헤드를 발생시킬 수 있으므로, 최소화할 수 있는 메커니즘이 필요하다.

많은 개발자가 Log을 출력하기 위해 일반적으로 사용하는 방식은 System.out.println()이다.
하지만 이 방식은 간편한 반면, 다음과 같은 이유로 권장하지 않는다.

  • 콘솔 로그를 출력 파일로 리다이렉트 할 지라도, 어플리케이션 서버가 재시작할 때 파일이 overwrite될 수도 있음
  • 개발/테스팅 시점에만 System.out.println()을 사용하고 운영으로 이관하기 전에 삭제하는 것은 좋은 방법이 아님
  • System.out.println() 호출은 디스크 I/O동안 동기화(synchronized)처리가 되므로 시스템의 throughput을 떨어뜨림
  • 기본적으로 stack trace 결과는 콘솔에 남지만, 시스템 운영 중 콘솔을 통해 Exception을 추적하는 것은 바람직하지 못함
  • 운영시의 코드가 테스트시의 코드와 다르게 동작할 수 있음

본 페이지에서는 SLF4j와 Log4j 2에 대한 기본 사용법과 Migration에 대해 설명한다.

설명

 
egovframework/rte3/fdl/logging.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki