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

2021. 3. 15. 03:18 Spring Framework/Spring boot #2

| 스프링 부트 로깅( 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

 

 

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



출처: https://engkimbs.tistory.com/767?category=767865 [새로비]