반응형

[Spring Boot #11] 스프링 부트 로깅( Spring Boot Logging )

반응형

| 스프링 부트 로깅( Spring Boot Logging )


스프링 부트에서는 로깅 설정을 자동적으로 지원합니다. 다음과 같이 slf4j 로깅 파사드( 로깅 모듈을 추상화한 것 )를 통해 logback 을 기본적으로 지원하고 있죠.

@Component
public class AppRunner implements ApplicationRunner {
// slf4j 로깅 파사드를 통해 logback 로깅 모듈을 지원
private Logger logger = LoggerFactory.getLogger(AppRunner.class);

@Override
public void run(ApplicationArguments args) throws Exception {
logger.info("=============");
logger.info("This is Spring Boot App");
logger.info("=============");
}
}

@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication application = new SpringApplication(Application.class);
application.setWebApplicationType(WebApplicationType.NONE);
application.run(args);
}
}
( ... 생략 ... )
2019-01-01 00:28:56.924  INFO 6200 --- [           main] com.tutorial.springboot.AppRunner        : =============
2019-01-01 00:28:56.925 INFO 6200 --- [ main] com.tutorial.springboot.AppRunner : This is Spring Boot App
2019-01-01 00:28:56.925 INFO 6200 --- [ main] com.tutorial.springboot.AppRunner : =============


| application.properties를 통한 로깅 설정


application.properties를 통해 다음과 같이 로깅 설정을 할 수 있습니다.

# application.properties
# 콘솔 창에 출력되는 로깅 메세지를 색으로 구분해서 출력
spring.output.ansi.enabled=always
# 로그 메세지가 저장되는 로그 디렉터리
logging.path=logs
# logging.level.{패키지 경로}를 통해 로깅 레벨을 결정할 수 있슴
logging.level.com.tutorial.springboot=DEBUG


| 스프링 부트 로깅 커스터마이징( Spring Boot Logging Customizing )


스프링 부트에서는 기본적으로 logback 모듈을 제공합니다. 따라서 logback 모듈을 다음과 같이 xml 파일로 따로 설정 정보를 관리하면서 개발할 수 있습니다.

// logback-spring.xml <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="com.tutorial.springboot" level="DEBUG"/>
</configuration>


만일 logback을 사용하지 않고 다른 로깅 모듈로 바꾸고 싶을 때는 pom.xml에 다음과 같이 logback 모듈에 대한 의존성을 제거해야 합니다.

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>


그 다음 log4j 같은 다른 로깅 모듈에 대한 의존성을 추가합니다.

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
2019-01-01 00:46:24.890  INFO 12920 --- [           main] c.t.s.Application                        : Starting Application on USER-PC with PID 12920 (C:\Users\user\spring\springboottutorial\target\classes started by user in C:\Users\user\spring\springboottutorial)
2019-01-01 00:46:24.913 INFO 12920 --- [ main] c.t.s.Application : No active profile set, falling back to default profiles: default
2019-01-01 00:46:26.724 INFO 12920 --- [ main] c.t.s.Application : Started Application in 2.777 seconds (JVM running for 4.043)



참고자료 : https://www.inflearn.com/course/스프링부트


반응형

이 글을 공유하기

댓글

Designed by JB FACTORY