ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [WEB:SPRING] 로그 Log 살펴보기
    비전공자 공부일기/:: WEB & Front-End 2019. 8. 29. 17:53

    2019. 08. 29

     

     

    로그Log에 대한 이해

     

    보통 우리가 자바 프로그래밍을 하면서 중간중간 돌아가는 상황이나 에러 등을 알기 위해 쓰는 코드가 있다.

     

    System.out.println();

     

    일반 사용자에게 보이지 않고 콘솔에 출력될 수 있는데, 이것도 엄연히 스레드의 명령어이므로 중간중간 이 코드가 있을수록 리소스를 잡아먹고 느려지게 된다. 그래서 확인해보고 나면 주석처리 해주는 게 중요함!

     

    이를 개선하기 위한 게 바로   로그 프로그램 ! 

     

    로그LOG란?

    사용자에게 시스템이 돌아가는 상황, 행위, 이벤트 정보를 시간에 따라 알려주는 기록

    >> 특히 사고나 장애 발생 시 원인을 파악하고 대처할 수 있도록 해주는 귀중한 데이터!

     

    대표적인 로그 프로그램으로 log4j 가 있다.

    log4j는 기록장치에 원하는 형태로 기록을 제공하기 위한 프로그램이다.

    스프링에서는 src패키지/test/resources > log4j.xml 파일을 이용하여 기록 관련 정보를 제공한다.

     

     

    log4j.xml 파일 설정하기

     

    < Appenders >

    <appender> : 로그의 전달방식 및 로그형식을 설정하는 상위 엘리먼트

    ----- <name> 속성 : 기록자(Appender)의 고유값을 속성값으로 설정

    ----- <class> 속성 : Appender 클래스를 속성값으로 설정 - 기록장치 관련 클래스

    -- ** http://logging.apache.org/log4j/1.2/apidocs/ 참조

    -- <param> : Appender 인스턴스를 생성에 필요한 정보를 전달하는 엘리먼트

    -- => Appender 클래스에 따라 전달하는 이름과 값이 다르다

    -- => Conversion Character에 의해 로그 패턴이 설정

       %c : 패키지가 포함된 클래스명을 전달하여 기록 - {정수}를 이용하여 원하는 형식으로 전달하여 전달

       => ex) %c{1} : 패키지를 제외한 클래스명 전달
       %d : 날짜와 시간을 전달하여 기록 >> {SimpleDateFormatPattern}을 이용하여 원하는 형식으로

              전달하여 기록 => ex) %d{HH:mm:ss} : 시간정보 전달
       %m : 로그 메세지 전달하여 기록
       %M : 호출 메소드명을 전달하여 기록
       %n : 엔터(Enter)를 전달하여 기록 - 로그 줄바꿈
       %p : 로그이벤트 전달하여 기록 - 로그이벤트 : TRACE > DEBUG > INFO > WARN > ERROR > FATAL

            - TRACE : 일반적인 정보까지 모두 준다
            - DEBUG : 보편적으로 많이 쓰임. 디폴트인 INFO보다 좀더 자세한 정보 포함
            - INFO : 디폴트로 되어있음
            - WARN : 경고 레벨
            - ERROR : 에러 레벨
            - FATAL : 심각!!!
       %r : 처리 시간 전달하여 기록
       %t : 처리 스레드명을 전달하여 기록

    -- <layout> : Appender 인스턴스로 기록하는 형식을 설정하는 엘리먼트

    ----- <class> 속성 : Layout 클래스를 속성값으로 설정

     

     

    < 로그 패턴에 기록 자릿수 설정하는 방법 >

    ==> %p : 로그이벤트의 길이만큼 자릿수 제공(왼쪽 정렬)

    ==> %자릿수P : 로그이벤트에 최대 자릿수 제공(왼쪽 정렬)

    ==> %.자릿수p : 로그이벤트에 최소 자릿수 제공(왼쪽 정렬)

    ==> %-자릿수P : 로그이벤트에 최대 자릿수 제공(오른쪽 정렬)

     

    Appender 상속받아 Appender 클래스를 만들 수도 있다.

     

     

    < Application Loggers >

    <logger> : 특정 패키지의 클래스에서 발생되는 로그를 설정하기 위한 엘리먼트

    ----- <name> 속성 : 로그를 사용할 패키지명을 속성값으로 설정

    ----- <additibity> 속성 : 상위 logger에게 이벤트 전달 유무(true(기본):전달, false:미전달)를 속성값으로 설정

    -- <level> : 로그이벤트를 설정하는 엘리먼트

    ----- <value> 속성 : 로그이벤트를 속성값으로 설정

    -- <appender-ref> : 사용하고자 하는 Appender(기록자)를 설정하는 엘리먼트

    ----- <ref> 속성 : Appender 고유값을 속성값으로 설정

     

    <Root Logger>

    -- <root> : 최상위 Logger를 설정하기 위한 엘리먼트

    -- => logger 설정이 없는 패키지에 기본적으로 적용하는 Logger

    -- => 모든 Logger에 기본적인 정보를 제공

    ----- <priority> : level 엘리먼트와 동일한 역활을 제공하는 엘리먼트

     

    댓글

coding wanee