Server/Spring

Spring - 로그백(Logback)

JaeHoney 2020. 9. 29. 16:48

 

spring-jcl

스프링5는 자체 로깅 모듈 spring-jcl을 사용합니다. 이 모듈은 직접 로그를 남기지는 않고 다른 로깅 모듈을 사용해서 로그를 남기는 방식입니다. 어떤 로깅 모듈 의존이 존재하면 해당 로깅 모듈로 로그를 남깁니다. 그래서 사용할 로깅 모듈 의존을 추가해야 합니다.

 

Spring Framwork <-> JCL 인터페이스 <-> Log4J(구현체)

 

즉, 위처럼 Log4J 의존이 존재하면 해당 모듈을 사용하고, 이를 빼고 다른 구현체를 끼워주면 또 해당 구현체가 작동합니다.

 

Logback

LogbackJava에서 가장 많이 사용됬던 로깅 라이브러리 log4j의 후속 버전입니다. log4j에 비해 여러가지 기능이 추가되고 성능이 향상되었습니다.

 

구현체를 로그백으로 설정하는 방법을 예로 들겠습니다.

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.5</version>
</dependency>

slf4j 라이브러리 의존을 추가하고

<dependency>
	<groupId>ch.qos.logback</groupId>
	<artifactId>logback-classic</artifactId>
	<version>1.2.3</version>
</dependency>

logback-classic 라이브러리를 추가해야합니다.

 

그리고 IDE에서 인식하도록 프로젝트 업데이트를 해야합니다. (Eclipse기준 Alt + F5)

<!-- src/main/resources/logback.xml -->
<?xml version="1.0" encoding="UTF-8"?>

<configuration>
	<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d %5p %c{2} - %m%n</pattern>
		</encoder>
	</appender>
	<root level="INFO">
		<appender-ref ref="stdout" />
	</root>

	<logger name="org.springframework.jdbc" level="DEBUG" />
</configuration>

그리고 위처럼 로그를 어떤식으로 사용할지 설정해주면됩니다. 마지막 줄 부분은 Jdbc와 관련된 모듈에서 출력하는 메세지를 DEBUG레벨(밑줄과 굵은 글씨)로 보기 위함입니다.

 

 

마무리

 

이 외에도 너무 방대한 패턴과 설정값 등이 있어서 자세히 설명 되어 있는 블로그 링크를 남기겠습니다.

 

romeoh.tistory.com/entry/Spring-Boot-Logback-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0