Forest Gump?

자바 로그 기록 방식(Log4j) 이란? 본문

카테고리 없음

자바 로그 기록 방식(Log4j) 이란?

code1010 2022. 3. 29. 17:14

Log4j(Log for Java) 특징

 

 1. 구조

①Logger(Category) : Log4J 에서 지원하는 핵심 클래스로서, 로깅이 일어나는 부분을 그룹화해, 필요한 그룹의 로그만을 출력하거나, 카테고리에 우선순위를 부여함으로써, 여러가지 출력 방법을 지원한다. 실제 로그 기능을 수행하는 역할을 담당한다.

②Appender : 로그의 출력 위치를 지정한다. Appender로 설정 가능한 출력은 콘솔, 파일, OutputStream, java.io.Writer,     Email(SMTP), Network 등이 있다.


    ConsoleAppender : 콘솔에 로그 메시지를 출력한다.
    FileAppender : 파일에 로그 메시지를 출력한다.
    RollingFileAppender : 로그의 크기가 지정한 용량 이상이 되면 다른 이름의 파일을 출력한다.
    DailyRollingFileAppender : 하루를 단위로 로그 메시지를 파일에 출력한다.
    SMTPAppender : 로그 메시지를 이메일로 보낸다.
    NTEventLogAppender : 윈도우의 이벤트 로그 시스템에 기록한다.

 

③Layout : 로그의 출력 포맷을 지정한다. 단순한 텍스트 출력, 포맷을 직접 지정한 패턴, HTML 문서 형식 등을 사용할 수 있다.
    %d : 로그의 기록시간을 출력한다.
    %p : 로깅의 레벨을 출력한다.
    %F : 로깅이 발생한 프로그램의 파일명을 출력한다.
    %M : 로깅이 발생한 메소드의 이름을 출력한다.
    %l : 로깅이 발생한 호출지의 정보를 출력한다.
    %L : 로깅이 발생한 호출지의 라인수를 출력한다.
    %t : 로깅이 발생한 Thread명을 출력한다.
    %c : 로깅이 발생한 카테고리를 출력한다.
    %C : 로깅이 발생한 클래스명을 출력한다.
    %m : 로그 메시지를 출력한다.
    %n : 개행 문자를 출력한다.
    %% : %를 출력
    %r : 어플리케이션이 시작 이후부터 로깅이 발생한 시점까지의 시간을 출력한다.(ms)
    %x : 로깅이 발생한 Thread와 관련된 NDC(nested diagnostic context)를 출력한다.
    %X : 로깅이 발생한 Thread와 관련된 MDC(mapped diagnostic context)를 출력한다.

 

2.  Log4j의 로깅 레벨 (지정한 것 이상의 레벨메시지가 출력)

① FATAL : 가장 크리티컬한 에러가 일어 났을 때 사용한다.
② ERROR : 일반 에러가 일어 났을 때 사용한다.
③ WARN : 에러는 아니지만 주의할 필요가 있을 때 사용한다.
④ INFO : 일반 정보를 나타낼 때 사용한다.
⑤ DEBUG : 일반 정보를 상세히 나타낼 때 사용한다.
⑥ TRACE : 경로추적을 위해 사용한다.

 

Logger.dubug 으로 코드를 작성했을떄, 1-4번의 친구들이 모두 다 기록된다.