log4j는 로그 관련 기능을 제공하는 라이브러리입니다. 웹 애플리케이션에서는 유지관리를 위해 웹 사이트에 접속한 사용자 정보나 메서드의 호출 시각 등 여러 가지 정보를 로그 파일로 저장하는데, log4j를 사용하여 로그 수집합니다.
log4j.xml 파일을 통해 로그에 관한 설정을 할 수 있지만 그전에 알아두어야 할 것들이 있습니다.
log4j.xml을 이루는 태그들입니다.
태그 |
설명 |
<appender> |
로그의 출력 위치를 결정합니다. |
<layout> |
로그가 어떤 형식으로 출력될 것인지 설정합니다 |
<logger> |
로깅 메세지를 appender에 전달합니다. |
appender 태그의 클래스 속성을 지정하여 로그 수집 위치와 방식을 설정할 수 있습니다.
appender 클래스 속성 |
설명 |
ConsoleAppender |
콘솔에 로그 메세지를 출력합니다. |
FileAppender |
파일에 로그 메세지를 출력합니다. |
RollingFileAppender |
파일 크기가 일정 기준을 넘으면 기준 파일을 백업 파일로 바꾸고 처음부터 다시 기록합니다. |
DailyRollingAppender |
클래스로, 설정한 기간 단위로 새 파일을 만들어 로그 메세지를 기록합니다. |
각 속성들은 아래와 같은 의미를 가지고 있으며, layout 태그 안의 param 태그의 value 속성에 포맷팅 되어 로그가 출력됩니다.
속성 |
설명 |
%p |
로그 레벨 이름 |
%m |
로그 메시지 출력 |
%d |
로깅 이벤트 발생 시각 |
%F |
로깅이 발생한 프로그램 파일 이름 |
%l |
로깅이 발생한 caller의 정보 |
%L |
로깅이 발생한 caller의 라인 수 |
%c |
로깅 메세지 앞에 전체 패키지 이름이나 전체 파일 이름 |
로그 레벨은 총 6단계로 이루어져 있으며 표에서 아래로 내려갈수록 낮은 수준의 레벨을 나타냅니다.
로그 레벨 |
설명 |
FATAL |
애플리케이션 작동이 불가능할 경우에 출력되로 레벨입니다. |
ERROR |
애플리케이션 실행 중 문제가 발생한 상태를 나타냅니다. |
WARN |
향후 시스템 오류의 원인이 될 수 있는 경고 메세지를 나타냅니다. |
INFO |
로그인, 상태 변경과 같은 실제 애플리케이션 운영과 관련된 정보 메세지를 나타냅니다. |
DEBUG |
개발 시 디버깅 용도로 사용한 메세지를 나타냅니다. |
TRACE |
DEBUG 레벨보다 상세한 로깅 정보를 출력하기 위해 도입된 레벨입니다. |
log.xml 파일에서 기준 레벨을 낮은 레벨로 설정했다면 그 레벨보다 높게 설정한 메시지들은 모두 출력됩니다. 만약 info로 설정했다면 fatal, error, warn레벨 메시지는 전부 출력됩니다.
log4j.xml
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<!-- Application Loggers -->
<logger name="com.example.spring01">
<level value="info" />
</logger>
<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="info" />
</logger>
<logger name="org.springframework.beans">
<level value="info" />
</logger>
<logger name="org.springframework.context">
<level value="info" />
</logger>
<logger name="org.springframework.web">
<level value="info" />
</logger>
<!-- Root Logger -->
<root>
<priority value="warn" />
<appender-ref ref="console" />
</root>
xml 파일에서 로그의 형식을 바꾸고 싶다면 layout 태그 안의 param 태그의 value 속성 값을 바꾸어 주면 됩니다. 또한 주석으로 Application Loggers 가 돼있는 곳을 보면 logger 태그를 이용하여 기준 로그 레벨을 설정해주고 있습니다.
다음에는 AOP 기능을 이용하여 특정 메서드가 실행될 때 자동으로 로그 수집이 되도록 설정해보겠습니다.
[Spring] Bean Validation(JSR-303) 으로 객체 값 검증하기 (0) | 2020.12.11 |
---|---|
[Spring] 스프링 프로젝트 만들기 (0) | 2020.12.11 |
[Spring] 스프링 AOP 기능 사용하기 (0) | 2020.12.11 |
[Spring] 스프링 타일즈(tiles) 설정하기 (2) | 2020.12.11 |
[Spring] 스프링 시큐리티 사용 설정하기 (0) | 2020.12.11 |