cbw1030
기록하는 공간
cbw1030
전체 방문자
오늘
어제
  • 전체보기 (101)
    • Programming (99)
      • Java (19)
      • Servlet (10)
      • Spring Framework (13)
      • Javascript (22)
      • AWS (2)
      • 네트워크 (8)
      • 데이터베이스 (13)
      • 리눅스 (3)
      • 블록체인 (7)
      • 용어 정리 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Brightics AI
  • 삼성SDS 브라이틱스
  • 브라이틱스
  • react
  • Brightics Studio
  • 삼성SDS
  • 인공지능
  • 크롤링
  • 차원축소
  • 브라이틱스 튜토리얼
  • 브라이틱스 스튜디오
  • 데이터분석
  • web
  • 생활코딩
  • 데이터 사이언스
  • beautifulsoup
  • Brightics
  • 브라이틱스 스튜디오 사용법
  • javascript
  • 머신러닝

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
cbw1030

기록하는 공간

[Java] Log4j에 대해 알아보자
Programming/Java

[Java] Log4j에 대해 알아보자

2019. 11. 11. 23:46
반응형

Log4j는 Log for Java라는 말로 풀이하여 이름을 지었고 자카르타 프로젝트에서 자바를 위한 프로젝트 중 하나라고 한다.

 

프로그래밍을 하다보면 오류가 났을 때 많은 시간을 투자하게 된다. 변수의 값을 확인하기 위해 System.out.println을 남발하여 애를 먹은 적도 있다.

 

Log4j는 이러한 시간을 절약해준다. 시간, 오류메시지, 클래스명, 메서드명, 라인수 등 자세한 오류 및 프로세스 흐름을 알려주기 때문이다.

 

Log4j의 구조

Log4j의 구조는 크게 세 가지로 나뉜다.

1. Logger

- 로그 파일을 작성하고, Appender에 메시지를 전달하는 기능을 한다.

- 로그 레벨을 가지고 있으며, 로그의 출력 여부는 로그문의 레벨과 로거의 레벨을 가지고 결정한다.

 

2. Appender

- 로그를 출력하는 위치를 지정한다.

  • ConsoleAppender      : 콘솔에 로그 메시지를 출력
  • FileAppender              : 파일에 로그 메시지를 출력
  • RollingFileAppender : 로그의 크기가 지정된 용량 이상이 되면 다른 이름의 파일로 출력

3. Layout

- Appender로 출력되는 메시지를 어떤 형식으로 출력할 것인지 출력 layout을 결정한다.

  • %d : 로그의 기록 시간 출력
  • %p : 로그의 우선순위 출력
  • %F : 로깅이 발생한 프로그램 파일명 출력
  • %M : 로깅이 발생한 메서드의 이름 출력
  • %L : 로깅이 발생한 호출자의 라인수 출력
  • %m : 로그 메시지 출력
  • % : n개행 문자를 출력

 

Log4j Level 

  1. FATAL     : 심각한 오류가 일어났을 때 사용(일반적으로는 어플리케이션에서는 사용할 일이 없다)
  2. ERROR    : 일반적인 오류가 일어났을 때 사용(요청을 처리하는 도중 문제가 발생한 상태)
  3. WARN     :  처리 가능한 문제이지만, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지
  4. INFO       : 일반 정보(로그인, 상태변경)와 같은 정보성 메시지
  5. DEBUG    : 개발시 디버그 용도로 사용한 메시지

* FATAL > ERROR > WARN > INFO > DEBUG

만약, DEBUG 레벨로 했다면 INFO ~ FATAL까지 모두 로깅이 된다.

반응형
저작자표시 (새창열림)

'Programming > Java' 카테고리의 다른 글

[Java] 메서드 정적 바인딩과 동적 바인딩  (0) 2020.07.05
[Java] 참조형식과 호출되는 메서드의 관계  (0) 2020.07.04
[JAVA] 날짜와 시간 다루기(java.time)  (0) 2019.11.09
[JAVA] TCP 통신 소켓 프로그래밍(양방향 통신)  (0) 2019.08.02
[JAVA] TCP 통신 소켓 프로그래밍(단방향 통신)  (0) 2019.08.02
    'Programming/Java' 카테고리의 다른 글
    • [Java] 메서드 정적 바인딩과 동적 바인딩
    • [Java] 참조형식과 호출되는 메서드의 관계
    • [JAVA] 날짜와 시간 다루기(java.time)
    • [JAVA] TCP 통신 소켓 프로그래밍(양방향 통신)
    cbw1030
    cbw1030

    티스토리툴바