티스토리 뷰

FULL STACK/SPRING &EGOV

log4j2

publepuble 2018. 12. 13. 13:11

회사에서 웹개발할때 페이지 이동시에 콘솔에 수많은 로그가 찍혔다.

첨에는 이 로그가 페이지마다 Controller에서 log를 찍어서 나오겠거니라고 생각했는데 더 편한 log4j2 기능을 사용한 거였다.


log4j2란?


Apache에서 만든 로깅을 위한 자바 기반의 오픈소스 라이브러리로 디버그용 도구로 주로 사용한다. Log4j의 약자는 Log for java 뜻으로 java 예외를 위해 설계되었다. 즉 java를 위한 로그 라이브러리... 진짜 콘솔에 로그가 찍히면 개발할때 정말 편한거같다.


사용법을 좀 보면 일단 자바기반의 라이브러리이기 때문에 pom.xml에 추가를 해줘야한다.


pom.xml

<!-- Logging -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>${org.apache.logging.log4j-version}</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-slf4j-impl</artifactId>

<version>${org.apache.logging.log4j-version}</version>

</dependency>


그리고 src/main/resources에 log4j2.xml생성해준다.


log4j2.xml(로그 출력 형식과 레벨 등을 모두 지정 가능) 

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="WARN">

<Appenders>

<Console name="Console" target="SYSTEM_OUT">

<PatternLayout pattern="%d{DEFAULT} [%t] %-5level %logger{36} - %msg%n" />

</Console>

</Appenders>

<Loggers>

<Logger name="org.springframework.web" level="DEBUG" />

<Root level="TRACE">

<AppenderRef ref="Console" />

</Root>

</Loggers>

</Configuration>


log4j2 를 좀더 자세히


log4j2는 FATAL,ERROR,WARN,INFO,DEBUG,TRACE의 Log Level을 제공한다.

로그레벨은 FATAL > ERROR > WARN > INFO > DEBUG > TRACE 


로그 레벨설명
FATAL아주 심각한 에러가 발생한 상태를 나타냄. 시스템적으로 심각한 문제가 발생해서 어플리케이션 작동이 불가능할 경우가 해당하는데, 일반적으로는 어플리케이션에서는 사용할 일이 없음.
ERROR요청을 처리하는중 문제가 발생한 상태를 나타냄.
WARN처리 가능한 문제이지만, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타냄.
INFO로그인, 상태변경과 같은 정보성 메시지를 나타냄.
DEBUG개발시 디버그 용도로 사용한 메시지를 나타냄.
TRACE디버그 레벨이 너무 광범위한 것을 해결하기 위해서 좀더 상세한 상태를 나타냄.

patternLayout의 pattern

%로 시작하고 %뒤에는 format modifiers와 conversion character로 정의한다.


패턴설명
c, logger로깅 이벤트를 발생시키기 위해 선택한 로거의 이름을 출력
C, class로깅 이벤트가 발생한 클래스의 풀네임명을 출력
M, method로깅 이벤트가 발생한 메서드명을 출력
F, file로깅 이벤트가 발생한 클래스의 파일명을 출력
l, location로깅 이벤트가 발생한 클래스의 풀네임명.메서드명(파일명:라인번호)를 출력
d, date로깅 이벤트의 일자와 시간을 출력,\\SimpleDateFormat클래스에 정의된 패턴으로 출력 포맷 지정가능
L, line로깅 이벤트가 발생한 라인 번호를 출력

m, msg, message

로그문에서 전달된 메시지를 출력
n줄바꿈
p, level로깅 이벤트의 레벨을 출력
r, relative로그 처리시간 (milliseconds)
t, thread로깅 이벤트가 발생한 스레드명을 출력
%%%를 출력하기 위해 사용하는 패턴

참고자료 : http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:%EC%84%A4%EC%A0%95_%ED%8C%8C%EC%9D%BC%EC%9D%84_%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94_%EB%B0%A9%EB%B2%95



반응형

'FULL STACK > SPRING &EGOV' 카테고리의 다른 글

스프링 시큐리티  (0) 2018.12.13
게시판 테이블 엑셀로 변환  (0) 2018.12.13
스프링에서의 트랜잭션  (0) 2018.12.10
웹페이지 에러 처리  (0) 2018.12.06
ITEXT를 이용한 PDF 출력  (0) 2018.12.05
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함