-
[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 엘리먼트와 동일한 역활을 제공하는 엘리먼트
'비전공자 공부일기 > :: WEB & Front-End' 카테고리의 다른 글
[WEB:SPRING] (0) 2019.08.30 [WEB:SPRING] 로그 Log 활용해보기 (0) 2019.08.30 [WEB:Spring] 스프링 시작하기 - 설치, 환경설정 셋팅 (0) 2019.08.29 [WEB:SPRING] 개요 - 프레임워크와 스프링 (0) 2019.08.29 [Web:] mybatis 마이바티스 XML DTO, DAO 만들기 (0) 2019.08.22